"创建具有未知类型的图像格式是错误"通过WKWebView显示WebApp时

时间:2017-09-14 15:34:57

标签: ios swift swift3 uiimage wkwebview

我在Swift 3(Xcode 8.3.3)中通过WKWebView显示WebApp

WebApp正在按预期运行,除非我尝试通过WebView将图像发布到服务器。

来自Xcode的控制台只是打印"创建一个未知类型的图像格式是一个错误"没有任何进一步的信息来帮助我排除故障。

作为this thread indicates,可能会出现导致此问题的警报。未正确设置WebView以显示警报,并且这可能会导致错误。

然而,我无法通过查看建议的解决方案来解决这个问题。

在我的viewWillAppear中,我调用了函数 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)上测试的应用程序结果相同。

编辑:可能的重复条目对我来说似乎没有效果,因为它指的是通过代码实现UIImagePickerController,但在我的场景中,它是由WKWebView创建的图像选择器,它似乎导致了这个问题。但是,如果我错了,请指导我正确的方向:)

1 个答案:

答案 0 :(得分:1)

创建具有未知类型的图像格式是错误这是一个通用警告,您可以安全地忽略该警告。问题应该是其他问题。

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)
    }
}

我创建了一个webview,并尝试从照片库上传图片。它确实给了我这个警告,但它成功上传了照片库中的照片。您可以尝试上面的代码,看看它是否适合您。顺便说一句,忘记在info.plist中添加权限说明以访问photolibrary

result