我正在尝试为WKWebView创建WKNavigationDelegate,但无法调用decisionHandler
。有谁知道如何做到这一点?
ObjC.registerSubclass({
name: "test",
methods: {
"webView:decidePolicyForNavigationAction:decisionHandler:": {
types: ["void", ["id", "id", "id"]],
implementation: function(wv, navigationAction, decisionHandler) {
decisionHandler($.WKNavigationActionPolicyAllow);
return;
}
}
}
});
var delegate = $['test'].alloc.init;
webView.navigationDelegate = delegate;
代码可以阻止导航操作,但不会调用decisionHandler
!
在控制台中我得到了日志:
Completion handler passed to -[test webView:decidePolicyForNavigationAction:decisionHandler:] was not called
将类型从“id”更改为“block”或“function”不起作用。
答案 0 :(得分:1)
我会添加一条评论,但令人困惑的SO规则禁止不回答(?!)的新手。是否在注册帮助中添加protocols: ['WKNavigationDelegate']
?
正在调用您的方法,并且$ .WKNavigationActionPolicyAllow显示为== 1,但协议可能会帮助JSC进行类型推断。