5

这篇文章是一半的问题 - 一半的公告。我开发的 iOS 应用程序包括执行 javascript 代码的 UIWebView。当我在装有新 iOS 7 的设备上运行该应用程序时,某些功能不起作用。经过长时间的调试,我设法找出了原因。Javascript AJAX 有一个请求 API,其构造方法为 open :

XMLHttpRequest.open(方法,网址,异步)

如果调用应该是阻塞的,则“asynch”参数为假,否则为真。仅在 iOS 7 Safari 上的问题是,如果 'async' 为 false,此方法会引发异常。

所以,希望这对遇到同样问题的任何人都有帮助,如果有人能对这个错误或解决它的方法有所了解,那就太好了

谢谢!

4

1 回答 1

6

UIWebview 在 IOS7 中不允许同步 XHR。

这是 WebView 和 Safari(确实允许它们)之间令人沮丧的差异之一。

解决方法:

  1. 创建一个发出同步 HTTP 请求的 Objective-C 函数。

  2. 从 JavaScript 调用该函数。(这是同步发生的。)

当然,如果您想要缓存等任何好处,则必须自己实现。

为什么 Apple 会认为要求这种解决方法是一个好主意,这有点令人费解。

于 2013-10-31T16:37:50.053 回答