代码之家  ›  专栏  ›  技术社区  ›  lundzern

通过WKWebView显示Web应用程序时,“创建未知类型的图像格式是错误的”

  •  0
  • lundzern  · 技术社区  · 7 年前

    我正在Swift 3(Xcode 8.3.3)中通过WKWebView显示一个网络应用程序

    Xcode控制台只打印“创建未知类型的图像格式是一个错误”,没有任何进一步的信息来帮助我解决问题。

    this thread indicates ,可能是警报导致了此问题。WebView未正确设置以显示警报,这可能会导致错误。

    在我的视图中将出现我调用函数 initWebView()

    func initWebView() {
       let source: NSString = "var meta = document.createElement('meta');" +
            "meta.name = 'viewport';" +
            "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no';" +
            "var head = document.getElementsByTagName('head')[0];" +
            "head.appendChild(meta);" as NSString
        let sourceScript: WKUserScript = WKUserScript(source: source as String, injectionTime: .atDocumentStart, forMainFrameOnly: true)
    
        let addCookieScript="localStorage.setItem('device', '\(self.tokenFirebase)');"
        let script: WKUserScript = WKUserScript(source: addCookieScript as String, injectionTime: .atDocumentStart, forMainFrameOnly: false)
    
        // Create the user content controller and add the script to it
        let userContentController = WKUserContentController()
        userContentController.addUserScript(script)
        userContentController.addUserScript(sourceScript)
    
        // Create the configuration with the user content controller
        let config = WKWebViewConfiguration()
        config.userContentController = userContentController
    
        let wkWebView = WKWebView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height), configuration: config)
        wkWebView.translatesAutoresizingMaskIntoConstraints = true
        self.wkWebView = wkWebView
        wkWebView.restorationIdentifier = "wkWebView"
        view.addSubview(wkWebView)
        wkWebView.navigationDelegate = self
        wkWebView.uiDelegate = self
        let request : NSMutableURLRequest = NSMutableURLRequest(url: self.webUrl as URL)
        wkWebView.isHidden = false
        wkWebView.load(request as URLRequest)
    
    }
    

    我一直在iPhone SE(iOS 10)、iPhone 7(iOS 10)和iPad(iOS 9.3.3)上测试该应用程序,结果相同。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sahil Manchanda    7 年前

    import UIKit
    import WebKit
    class ViewController: UIViewController {
        var webView:WKWebView!
        override func viewDidLoad() {
            super.viewDidLoad()
           loadWebView()
        }
    
        func loadWebView(){
            webView = WKWebView(frame: self.view.frame)
            self.view.addSubview(webView)
            let urlRequest = URLRequest(url: URL(string: "https://imgbb.com/")!)
            webView.load(urlRequest)
        }
    }
    

    我创建了一个网络视图,并试图从照片库上传一个图像。它确实给了我这个警告,但它成功地从照片库上传了照片。您可以尝试以上代码,看看它是否适合您。顺便说一句,不要忘了添加权限解释来访问信息中的photolibrary。plist公司

    result