2

我正在为我的 iOS 项目使用 PhoneGap 2.4。

当我想通过在新的 webview 层中打开外部 URL 时window.open(url, "_blank");,这适用于“简单”URL,例如“ http://www.google.com ”。

包含空格和特殊字符的更复杂的 URL 是一个问题。为了避免这种情况,我通过这个 JavaScript 调用对它们进行 URL 编码:

url = encodeURIComponent(url);

这不适用于 InAppBrowser 插件。相反,我收到一条错误消息:

webView:didFailLoadWithError - 操作无法完成。(WebKitErrorDomain 错误 101。)

因此,我对此进行了调查,我注意到如果 url 包含“%”字符window.open(url, "_blank");,则调用失败并显示此错误消息,例如,如果空白字符被编码为“%20”。

我该如何解决这个问题?这不是一个错误吗?


更新:我刚刚在 Android 上使用 PhoneGap 2.3 测试了相同的应用程序。奇迹般有效。所以这要么是 iOS 问题,要么是最新的 PhoneGap 版本 2.4 的问题。

4

3 回答 3

3

卧槽,我才发现问题。我的网址中有一个未编码的空格。我用“%20”替换了它,现在它可以工作了。

我想我变老了:-(

于 2013-02-20T14:41:22.050 回答
0

尝试用转义键包围 %

于 2013-02-18T12:08:29.220 回答
0

尝试改用 encodeURI(参见快速示例): http ://docs.phonegap.com/en/2.4.0/cordova_inappbrowser_inappbrowser.md.html#window.open

于 2013-02-19T21:02:11.900 回答