4

私がする必要があるのは、App Link から iPad のブラウザー (Safari、Chrome など) への外部 Web ページ リンクを開くことだけです。

PhoneGap 3.1 は、InAppBrowser というプラグインを介して実行できると述べています。インストールして、config.xml に次の行を追加しました。

  <plugin name="InAppBrowser" value="CDVInAppBrowser" />
    <feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
    </feature>
    <access origin="*"/>

次に、Webページを開く必要があるリンクをページに追加しました:-

<a class="linkexternal" href="#">asdf</a>

次のJSで

    <script type="text/javascript">
        $(document).on('click', ".linkexternal", function (e) {
            e.preventDefault();
            //window.open('http://apache.org', '_blank', 'location=no');
                       window.open('http://apache.org', '_system', 'location=yes');

        });
    </script>

ページは開きますが、コントロールなしで画面全体に広がるだけです。古いバージョンの PhoneGap では、最後に「完了」と表示されたので、完了ボタンを押すとアプリに戻っていました。しかし、ここでは、ページ全体が全画面で表示され、アプリに戻る唯一の方法はアプリを閉じることです。

完了ボタンを表示するか、外部ブラウザでリンクを開くだけです。

追加情報

テストとして、これら 3 つの異なるリンクを開こうとしました。「_system」、「_blank」、「_self」を使用

    <a href="#" onclick="var ref = window.open('http://google.com', '_system');">Google (System Browser)</a><br /><br />
    <a href="#" onclick="var ref = window.open('http://google.com', '_blank');">Google (InAppBrowser)</a><br /><br />
    <a href="#" onclick="var ref = window.open('http://google.com', '_self');">Google (Webview)</a>

「_system」、「_blank」、「_self」を使用してこれら 3 つのリンクをテストすると、「_self」のみがアプリの全画面表示として開き、残りは次のエラーが表示されます。

_systemリンクはこのエラーを与えます:-

2013-11-12 11:44:58.878 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)

_blankリンクはこのエラーを与えます:-

2013-11-12 11:46:13.997 XYZ[2063:60b] CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.997 XYZ[2063:60b] Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.999 XYZ[2063:60b] Resetting plugins due to page load.
2013-11-12 11:46:14.009 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
4

2 に答える 2

-1

してみてください;

var urlToOpen = 'http://www.google.com';
navigator.app.loadUrl(urlToOpen, { openExternal: true });
于 2014-02-27T11:37:05.153 に答える
-1

問題は href="#" だと思います。タグでこれを使用すると、onClick が起動せず、NSURLErrorDomain エラー -999 はブラウザが「#」を解決できなかったことを意味すると思います

于 2014-08-02T19:01:07.767 に答える