【问题标题】:javascript inject in uiwebview of iOS 8javascript 在 iOS 8 的 uiwebview 中注入
【发布时间】:2014-06-26 02:03:42
【问题描述】:

我正在 iOS 8 预览版 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 中的新限制? 有任何想法吗?欣赏。

【问题讨论】:

    标签: javascript objective-c uiwebview ios8


    【解决方案1】:

    经过大量搜索。 最后,我得到了一个解决方案, 只需点击链接link here。 问题是javascript。 将 javascript 重写为示例样式 它现在在 iOS 8 中运行良好(在 Beta3 中测试)。

    【讨论】:

      【解决方案2】:

      iOS8 似乎无法通过 := 在您的情况下,就在函数名称之后。尝试从行替换

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

      使用? 标记喜欢

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

      应该可以。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 2012-06-24
        • 1970-01-01
        • 2014-11-16
        • 1970-01-01
        相关资源
        最近更新 更多