[英]Xcode Linker error for WKWebViewJavascriptBridge
我正在使用WebViewJavascriptBridge在JS和本機代碼之間進行交互。 我發現UIWebView有時會變慢,因此我嘗試切換到WKWebView。
使用UIWebView時該項目很好。
var bridge:WebViewJavascriptBridge!
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.webView = UIWebView(frame: self.viewport.frame)
self.view.addSubview(webView!)
let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html", subdirectory: "www")
webView!.loadRequest(NSURLRequest(URL: url!))
webView!.scrollView.bounces = false
self.bridge = WebViewJavascriptBridge(forWebView: webView, handler: { (data, callback) -> Void in
callback("msg from bridge")
})
}
工作編譯器列表:
但是,當我更改為WKWebViewJavascriptBridge時,它在鏈接時會崩潰:
var bridge:WKWebViewJavascriptBridge!
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.webView = WKWebView(frame: self.viewport.frame)
self.view.addSubview(webView!)
let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html", subdirectory: "www")
webView!.loadRequest(NSURLRequest(URL: url!))
webView!.scrollView.bounces = false
self.bridge = WKWebViewJavascriptBridge(forWebView: webView, handler: { (data, callback) -> Void in
callback("msg from bridge")
})
}
錯誤信息:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_WKWebViewJavascriptBridge", referenced from:
type metadata accessor for __ObjC.WKWebViewJavascriptBridge in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
似乎這些.m文件在鏈接之前沒有被編譯。
請告知。
ew,最后通過編輯橋頭使它工作了。
在文件WKWebViewJavascriptBridge.h
,找到以下行:
#if (__MAC_OS_X_VERSION_MAX_ALLOWED > __MAC_10_9 || __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1)
#define supportsWKWebKit
#endif
然后刪除#if #endif
對,只保留#define supportsWKWebKit
位。 但是請確保您使用的是iphone 7.1或更高版本,否則它將不支持WKWebkit 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.