在ios8的uiwebview中注入javascript

javascript inject in uiwebview of iOS 8

本文关键字:注入 javascript uiwebview ios8      更新时间:2023-09-26

我正在iOS 8预览版2中测试我的项目。现在我面临两个关于uiwebview
的问题我使用下面的代码注入我的脚本

NSString *jsCLOSE_WINDOW = @"function CLOSE_WINDOW(){
    document.location ='mySchema://FUNCTION=CLOSE_WINDOW';
}";
[self.webView stringByEvaluatingJavaScriptFromString:jsCLOSE_WINDOW];

in "-(void)webViewDidFinishLoad:(UIWebView *)webView"
并在

中得到响应
 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

在ios7.1和更早的版本中可以正常工作。但是在iOS 8预览版2

<>之前1.文档。location = 'mySchema://FUNCTION=CLOSE_WINDOW';
似乎不再工作了?我不能得到响应在"shouldStartLoadWithRequest"2.在iOS 7.1及更早版本中,每次页面重定向到另一个
(例如:page1.html -> page2.html -> page3.html)
"webViewDidFinishLoad"将在每个页面中触发。
但是,在iOS 8预览2中,它只在第一页触发一次之前

如何解决这些问题?或者这是iOS 8的新限制?什么好主意吗?升值。

经过一番搜索。最后,我得到了一个解决方案,点击这里的链接。问题是javascript。将javascript重写为示例样式目前在iOS 8(Beta3测试)中运行良好。

iOS8似乎无法通过:=在你的情况下,就在功能名称之后。尝试从

行进行替换
document.location ='mySchema://FUNCTION=CLOSE_WINDOW';

使用?标记,如

document.location ='mySchema://FUNCTION?CLOSE_WINDOW';

应该工作。