【发布时间】:2016-09-20 09:11:28
【问题描述】:
我在iOS中使用UIWebView,和js通信。我使用JSContext来获取以下js回调:
public typealias jsBridgeFuncAlias = (JSValue)->Void
@objc
protocol WebViewJSExport:JSExport {
var call:jsBridgeFuncAlias?{get}
}
class SAJavaScriptBridge:NSObject,WebViewJSExport{
public var call: jsBridgeFuncAlias?
public init(context:JSContext){
super.init()
context.setObject(self, forKeyedSubscript:kBridgeName as (NSCopying & NSObjectProtocol)!)
self.call = { [unowned self](block:JSValue) in
self.callNativeMethod(block:block )
}
}
func callNativeMethod(block:JSValue){
block.call(withArguments:nil) //execute the js callback block in ios native
}
但是在迁移到WKWebView 之后,我无法使用此代码获取 js 回调块:
window.webkit.messageHandlers.WKWebView.postMessage(function())
谁能帮忙?
【问题讨论】: