我正在为我的iOS项目使用PhoneGap 2.4。
当我想通过window.open(url, "_blank");
在新的网页视图图层中打开外部网址时,这适用于“简单”网址,例如“http://www.google.com”。
BUT
更复杂的URL包括空格和特殊字符是一个问题。为避免这种情况,我通过此JavaScript调用对其进行URL编码:
url = encodeURIComponent(url);
这不适用于InAppBrowser插件。相反,我收到一条错误消息:
webView:didFailLoadWithError - 无法完成操作。 (WebKitErrorDomain错误101。)
所以,我调查了这一点,我发现如果网址包含“%”字符,则对window.open(url, "_blank");
的调用失败并显示此错误消息,例如如果空格字符被编码为“%20”。
我该如何解决这个问题?这不是一个错误吗?
更新:我刚刚使用PhoneGap 2.3在Android上测试了相同的应用。奇迹般有效。所以它是iOS问题或最新PhoneGap版本的问题是2.4。
答案 0 :(得分:3)
该死的,我刚刚发现了这个问题。我的网址中有一个未编码的空白空间。我用“%20”替换它,现在它可以工作。
我想我变老了: - (
答案 1 :(得分:0)
尝试使用转义键围绕%
答案 2 :(得分:0)
请尝试使用encodeURI(请参阅快速示例): http://docs.phonegap.com/en/2.4.0/cordova_inappbrowser_inappbrowser.md.html#window.open