iOS 8中在UIWebView中注入JavaScript

3
我正在iOS 8 preview 2中测试我的项目。 现在我面临着两个与uiwebview相关的问题。
我使用以下代码来注入我的脚本:
NSString *jsCLOSE_WINDOW = @"function CLOSE_WINDOW(){
    document.location ='mySchema://FUNCTION=CLOSE_WINDOW';
}";
[self.webView stringByEvaluatingJavaScriptFromString:jsCLOSE_WINDOW];

"-(void)webViewDidFinishLoad:(UIWebView *)webView"方法中获取响应

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

在iOS 7.1及之前,它可以正常工作。但是在iOS 8预览版2中

1.document.location = 'mySchema://FUNCTION=CLOSE_WINDOW'; 
似乎不再起作用了?我无法在“shouldStartLoadWithRequest”中获得响应。 2.在iOS 7.1及之前,每次页面重定向到另一个页面(例如:page1.html -> page2.html -> page3.html),
“webViewDidFinishLoad”将在每个页面中触发。但是,在iOS 8预览版2中,它只会在第一页触发一次。

我该如何解决这些问题?或者这是iOS 8的新限制吗?有什么想法吗?感谢。

2个回答

3

经过长时间的搜索,终于找到了解决方案,只需按照链接。问题在于JavaScript。将JavaScript重写为示例样式即可,在iOS 8中(测试版3)目前可以正常工作。


1
iOS8似乎无法在函数名称后紧接着使用:=。请尝试从该行进行替换。
document.location ='mySchema://FUNCTION=CLOSE_WINDOW';

使用 ? 符号的方式如下:
document.location ='mySchema://FUNCTION?CLOSE_WINDOW';

应该工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接