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 の問題です。