2

iOS プロジェクトに PhoneGap 2.4 を使用しています。

を介して新しい webview レイヤーで外部 URL を開きたい場合、これは「 http://www.google.comwindow.open(url, "_blank"); 」などの「単純な」URL でうまく機能します。

しかし

空白や特殊文字を含むより複雑な URL は問題です。これを避けるために、次の JavaScript 呼び出しで URL エンコードします。

url = encodeURIComponent(url);

これは、InAppBrowser プラグインでは機能しません。代わりに、次のようなエラー メッセージが表示されます。

webView:didFailLoadWithError - 操作を完了できませんでした。(WebKitErrorDomain エラー 101。)

それで、これを調べたところ、URL に「%」文字が含まれている場合、たとえば空白文字が「%20」にエンコードされた場合、への呼び出しwindow.open(url, "_blank");がこのエラー メッセージで失敗することに気付きました。

これを回避するにはどうすればよいですか? これはバグではありませんか?


更新: PhoneGap 2.3 を使用して Android で同じアプリをテストしました。魅力のように機能します。つまり、iOS の問題か、最新の PhoneGap リリースである 2.4 の問題です。

4

3 に答える 3

3

くそー、私はちょうど問題を見つけました。URL にエンコードされていない空白が 1 つありました。「%20」に置き換えたところ、動作するようになりました。

なんか年取った気がする(-_-;)

于 2013-02-20T14:41:22.050 に答える
0

代わりに encodeURI を使用してみてください (簡単な例を参照): http://docs.phonegap.com/en/2.4.0/cordova_inappbrowser_inappbrowser.md.html#window.open

于 2013-02-19T21:02:11.900 に答える