【问题标题】:Intercepting window.external.notify call from javascript in objective C在目标C中拦截来自javascript的window.external.notify调用
【发布时间】:2014-03-13 23:21:22
【问题描述】:

我需要拦截对 window.external.notify 的 javascript 调用,该调用返回一个安全令牌字符串,我需要将其放入我的目标 C 代码中。 javascript 正在 UIWebView 中执行。那里的脚本如下所示:

<script type="text/javascript">
    try{
        window.external.notify('{<extremely long dictionary as a JSON string>}');
    }
    catch(err){
        alert("Error ACS50021: window.external.notify is not registered.");
    }
</script>

我需要以某种方式将 JSON 字典转换为目标 C 中的字符串。我尝试过这里的方法:http://www.stevesaxon.me/posts/2011/window-external-notify-in-ios-uiwebview/;但它似乎只是干扰了 html/javascript 页面的呈现,也没有捕获字符串(我没有方便的 acs 标识符来检查我正在拦截正确的调用)。其他类似的问题也被问过,但我无法得到任何工作,许多看起来非常h​​ackish,而且它们通常已经过时了。我已尝试访问 webview 的 html 内容,但令牌不存在,因为它仅通过 window.external.notify 发送,该错误提示它未注册。

我知道现在 iOS 7 中有一个原生 JS->objC 桥,我只需要支持 iOS 7+,但我从未使用过它,而且我似乎也无法启动并运行它。它似乎也主要用于将您自己的 JS 源文件作为应用程序的一部分,而不是用于通过 UIWebView 与服务器通信,但如果我对此有误,请告诉我。

【问题讨论】:

    标签: javascript iphone objective-c ios7 uiwebview


    【解决方案1】:

    试试这个method。这里页面被重定向并使用接收数据方法加载令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多