使用 Ajax 从 UIWebView 调用 Objective C 函数

Posted

技术标签:

【中文标题】使用 Ajax 从 UIWebView 调用 Objective C 函数【英文标题】:Calling Objective C function from UIWebView using Ajax 【发布时间】:2012-10-19 12:33:56 【问题描述】:

我在网上找到了一个教程,上面说可以使用以下 javascript 代码从 WebView 调用 ObjectiveC 代码

var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "js-frame:myObjectiveCFunction");
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;

然后从ObjectiveC我必须实现UIWebViewDelegate来接收shouldStartLoadWithRequest。 我尝试了这段代码,它奏效了;但是,我想知道是否可以使用 AJAX 调用而不是使用 IFrame 来实现相同的功能。

【问题讨论】:

【参考方案1】:

如果你用JS改变window.location就可以了。它将调用您正在使用的委托函数。

您还可以使用页面上的链接使用相同的委托方法执行 obj-c 函数。

如果您打算使用 AJAX 进行特殊调用,请详细说明。

【讨论】:

以上是关于使用 Ajax 从 UIWebView 调用 Objective C 函数的主要内容,如果未能解决你的问题,请参考以下文章

如果从 tableView:didSelectRowAtIndexPath 调用 UIWebView 不调用 loadRequest:

知道何时在 UIWebView 中加载了 AJAX

从后台获取加载 UIWebView

在 iOS 7 中无法从 UIWebView 调用应用程序(URL 方案)

UIWebView 部分可操作

UIWebView 中 PUT 或 POST 类型的 ajax 不通过 HTTP 正文