"Creating an image format with an unknown type is an error" 通过 WKWebView 显示 WebApp 时
"Creating an image format with an unknown type is an error" when displaying a WebApp through WKWebView
我在 Swift 3 (Xcode 8.3.3)
中通过 WKWebView 显示 WebApp
WebApp 正常运行,除了我尝试通过 WebView post 向服务器发送图像时。
来自 Xcode 的控制台仅打印 "Creating an image format with an unknown type is an error",没有任何进一步的信息来帮助我进行故障排除。
作为 ,可能是某些带有警报的内容导致了此问题。 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 创建的图像选择器似乎导致了这个问题。但是,如果我弄错了,请指导我正确的方向:)
创建类型未知的图像格式是一个错误这是一个一般警告,您可以安全地忽略该警告。问题应该是别的。
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)
}
}
我创建了一个网络视图并尝试从照片库上传一张图片。它确实给了我那个警告,但它成功地从照片库上传了照片。您可以尝试上面的代码,看看它是否适合您。顺便说一句,不要忘记在 info.plist
中添加访问照片库的权限说明
我在 Swift 3 (Xcode 8.3.3)
中通过 WKWebView 显示 WebAppWebApp 正常运行,除了我尝试通过 WebView post 向服务器发送图像时。
来自 Xcode 的控制台仅打印 "Creating an image format with an unknown type is an error",没有任何进一步的信息来帮助我进行故障排除。
作为
但是我无法通过查看那里建议的解决方案来解决这个问题。
在我的 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 创建的图像选择器似乎导致了这个问题。但是,如果我弄错了,请指导我正确的方向:)
创建类型未知的图像格式是一个错误这是一个一般警告,您可以安全地忽略该警告。问题应该是别的。
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)
}
}
我创建了一个网络视图并尝试从照片库上传一张图片。它确实给了我那个警告,但它成功地从照片库上传了照片。您可以尝试上面的代码,看看它是否适合您。顺便说一句,不要忘记在 info.plist
中添加访问照片库的权限说明