2

モバイルウェブサイト - ハンドヘルドユニット向けに最適化されたウェブサイトを構築しました。 iPhoneを使用している場合、Safariを起動し、このWebアプリケーションを使用するためにサイトのURLにアクセスします。それをホーム画面に追加してiPhone web appとして実行することもできます。だから、ネイティブのiPhoneアプリではありません。モバイルWebページです。JavaScriptを使用してiPhone Webアプリケーションから外部ページを開きますか?

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

JavaScriptを使用してiPhone WebアプリケーションからSafariでリンクを開く方法を探しています。私はwindow.location.hrefを試しましたが、それはJavaScriptなのでWebアプリケーションにとどまります。

ありがとうございます!

+0

ここで、ユーザは、私が何をしようとしているの反対をやりたいの例です:Webアプリケーション内のすべてのリンクを開きます:http://stackoverflow.com/questions/2898740/iphone-safari- web-app-opens-links-in-new-window – tkahn

+0

これは早すぎるので、テストケースをまとめる時間がないので、これは答えにはしませんが、 'window.open' ? – Quentin

+0

はい、私はそれを試みました。結果は何も起こらないということです。 – tkahn

答えて

0

私もこれで苦労しています。 Javascriptの代わりに外部リンクを開くときに、基本的なHTMLを使用するようにデフォルト設定しました。これは別のブラウザで強制的に開くように見えます。私は単にJavascriptまたは.htmlファイル内の静的を使用して、その内部のリンクを持つdivを記述します。

私の実装例、HTMLで記述されたオフサイトのリンクについては、「約」ページをチェック:http://4drillsbrewery.com/tools

を(コードを判断しないでください、それは、すべてのDashcodeに慣れるために書かれただけのおもちゃでしたプログラミングプロジェクトとしてではありません!ありがとう)。私は誰かがより良い方法を望んで、このスレッドに従います。私は、これはすべてのシナリオで支援するつもりしかしjavascriptのコードを提供されていない感謝

0

は、ハイパーリンクのユーザー生成クリック由来するこの解決策はあり...

$("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 
    } 
}); 
関連する問題