更新Cocos2d-x4后,webView控件无法得到回调

由于AppStore的审核变更,我们把游戏中原来用的webview控件升级到了4.0,3.8时代码运行一切正常,但升级后发现通过JavascriptInterfaceScheme无法回调,请大神帮忙!

核心代码如下:
xcode代码:
webview->setJavascriptInterfaceScheme( “XXXXXX” );
webview->setOnJSCallback(callback_function);

页面中js代码:
windows.location.href=‘XXXXX://XXXXX’

每次点击xcode提示:(个人认为无用)
1._userSettingsForUser mobile: {
filterBlacklist = (
);
filterWhitelist = (
);
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
2.WF: _WebFilterIsActive returning: NO
3.ProvisionalPageProxy::didFailProvisionalLoadForFrame: pageProxyID=6 webPageID=16, frameID=3, navigationID=4
4.ProcessAssertion::processAssertionWasInvalidated()

Debug跟踪无法进入callback函数。

不知是否有家人遇到和我一样的情况,请指教。

消灭0回复,站贴楼

请教下这个问题最后怎么解决的?

修改UIWebViewImpl-ios.mm中的代码:
NSString *url = [[[navigationAction request] URL] absoluteString]; if ([[webView.URL scheme] isEqualToString:self.jsScheme]) {
改为
NSURLRequest *request = [navigationAction request]; NSString *url = [[request URL] absoluteString]; if ([[[request URL] scheme] isEqualToString:self.jsScheme]) {
以下是完整代码:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    //NSString *url = [[[navigationAction request] URL] absoluteString];
    //if ([[webView.URL scheme] isEqualToString:self.jsScheme]) {
    NSURLRequest *request = [navigationAction request]; 
    NSString *url = [[request URL] absoluteString];
    if ([[[request URL] scheme] isEqualToString:self.jsScheme]) {
        self.onJsCallback([url UTF8String]);
        decisionHandler(WKNavigationActionPolicyCancel);
        return;
    }
    if (self.shouldStartLoading && url) {
        if (self.shouldStartLoading([url UTF8String]) )
            decisionHandler(WKNavigationActionPolicyAllow);
        else
            decisionHandler(WKNavigationActionPolicyCancel);

        return;
    }

    decisionHandler(WKNavigationActionPolicyAllow);
}