[英]How to Handle Image uploading in WKWebview?
我已經使用 webkit 在我的應用程序上顯示 url。
當我點擊圖像按鈕(綠色按鈕 ), 它顯示相機或照片庫。 問題是,當單擊Use photo時,webkit 會自動刷新而不是顯示在頁面上
我的代碼是
import UIKit
import WebKit
import Alamofire
class ContinueViewController: UIViewController, WKUIDelegate {
@IBOutlet weak var activityView: UIActivityIndicatorView!
@IBOutlet weak var webview: WKWebView!
func getPostString(params:[String:Any]) -> String{
var data = [String]()
for(key, value) in params
{
data.append(key + "=\(value)")
}
return data.map { String($0) }.joined(separator: "&")
}
var url: URL?
var traderCategoryId = 0, tradeSkillId = 0
override func viewDidLoad() {
super.viewDidLoad()
webview.navigationDelegate = self
self.navigationController?.navigationBar.isHidden = false
webview.uiDelegate = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
activityView.startAnimating()
guard let url = self.url else { return }
var req = URLRequest(url: url)
let params = ["id" : id,"trader_skills" : tradeSkillId]
let postString = self.getPostString(params: params)
req.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
req.httpMethod = "POST"
req.httpBody = postString.data(using: .utf8)
self.webview.load(req)
}
}
extension ContinueViewController: WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
activityView.stopAnimating()
}
}
extension UIImagePickerController {
open override func viewDidLoad() {
super.viewDidLoad()
// self.modalPresentationStyle = .fullScreen
}
}
問題是,當單擊使用照片時,webkit 會自動刷新而不是顯示在頁面上
因為你self.webview.load(req)
在
override func viewWillAppear(_ animated: Bool) {
顯示相機或照片庫,然后返回此頁面
再次調用func viewWillAppear
self.webview.load(req)
再次調用
做簡單的,
把self.webview.load(req)
相關的放在
override func viewDidLoad() {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.