2012-01-16 7 views
0

私はiPhoneスタンドアロンWebアプリケーションでSafariの代わりにWebアプリケーション内で開くリンクを取得しようとしています。iPhone Safari Web Appはjavascript:history.go(-1)を使用すると新しいウィンドウでリンクを開きます

私はこのスレッドを発見しましたiPhone Safari Web App opens links in new window 私を助けてくれました。 history.go(-1):私は私のアプリではJavaScriptとのリンクを使用する場合、私がいる問題があるrmarscher

<script>(function(a,b,c){if(c in b&&b[c]){var d,e=a.location,f=/^(a|html)$/i;a.addEventListener("click",function(a){d=a.target;while(!f.test(d.nodeName))d=d.parentNode;"href"in d&&(d.href.indexOf("http")||~d.href.indexOf(e.host))&&(a.preventDefault(),e.href=d.href)},!1)}})(document,window.navigator,"standalone")</script> 

で答えを使用していました。 history.go(-1)をクリックした後にリンクをクリックすると、WebアプリではなくSafariで開きます。

誰かがコードを見て、この問題の解決策があるかどうか確認してください。

+0

あなたのアプリに 'UIWebView'を使用していますか? – sergio

+0

@sergioそれはあなたがホームスクリーンに追加するサファリで実行されている単なるウェブサイトです。だから私はそうは思わない。 –

答えて

0

ウェブアプリケーションが「アプリモード」で使用されていて、ホームページからアクセスされ、デフォルトのAppleのナビゲーションバーがない場合、JavaScript履歴apiは機能しません。あなたは "直接リンク"を使用し、実際のページにリンクする必要があります。あなたが持っているスクリプトは、「外部」サイトではなく「アプリモード」でサイトのリンクをクリックすると、iOSは「アプリモード」でリンクを開きます。

「アプリモード」は、「スタンドアロンモード」とも呼ばれます。