2

モバイルWeb サイト (ハンドヘルド ユニット用に最適化された Web サイト) を作成しました。iPhone を使用している場合は、Safari を起動し、サイトの URL に移動してこの Web アプリを使用します。ホーム画面に追加することで、 iPhone Web アプリとして実行することもできます。つまり、ネイティブの iPhone アプリではなく、モバイル Web ページです。

このモバイル Web ページを (ホーム画面に追加して) iPhone Web アプリとして実行することを選択した場合、通常の Safari インターフェースではありません。ユーザーが外部サイトへのリンクをクリックすると、Web アプリを離れ、リンクが Safari で開かれます。一方、JavaScript を使用して場所を変更すると、リンクは Safari ではなく Web アプリで開かれます。

現在、JavaScript を使用して iPhone Web アプリから Safari でリンクを開く方法を探しています。window.location.href を試してみましたが、これは JavaScript であるため、Web アプリにとどまります。

前もって感謝します!

4

2 に答える 2

0

私もこれに苦労しています。外部リンクを開くときは、デフォルトでJavascriptではなく基本的なHTMLを使用しています。これにより、別のブラウザーで強制的に開くように見えます。Javascriptを使用するか、.htmlファイルにstaticを使用して、リンクを含むdivを作成するだけです。

私の実装例として、HTMLで記述されたオフサイトリンクの「概要」ページを確認してください:http://4drillsbrewery.com/tools

(コードを判断しないでください。プログラミングプロジェクトとしてではなく、Dashcodeに慣れるために書かれたおもちゃでした!ありがとうございます)。誰かがより良い方法を持っていることを願って、私はこのスレッドをフォローします。

于 2012-01-24T03:56:03.793 に答える
0

これがすべてのシナリオで役立つわけではないことを理解していますが、JavaScriptコードがユーザーが生成したハイパーリンクのクリックに由来する場合、この解決策があります...

$("a.someHyperLink").click(function () {
    var url = doJavascriptStuffToGenerateTheDynamicUrl();
    $(this).prop("href", url);
    return true; // return true so the click propagates and the new href is followed
});

これをさらに拡張して、サイトが通常 Safari で閲覧されているときとスタンドアロン アプリとしての両方で機能するようにすることができます。

$("a.someHyperLink").click(function () {
    var url = doJavascriptStuffToGenerateTheDynamicUrl();
    if (window.navigator.standalone) {
        // We are within the context of an iPhone standalone/fullscreen/homescreen app
        // Change the href and return true so that we leave the standalone app and the URL is opened in a new window in Safari
        $(this).prop("href", url);
        return true;
    } else {
        // Website is open in a browser normally
        // Open the URl in a new browser window
        window.open(url);
        return false; // Return false so the href isn't followed
    }
});
于 2012-05-03T16:28:17.503 に答える