4
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />     

$('#btn-fb-share').click(function() {
        $('#btn-fb-share').attr("disabled", "disabled");
        window.open(url,"Mywindow","location=yes,menubar=yes");
    });

私のIpad(ホーム画面でWebサイトへのショートカットを作成した場所)では、リンクが新しいウィンドウ(Safari)で開きません。どうすればこれを解決できますか?私のPCでは、リンクは新しいウィンドウで正しく開きます。

編集:私はそれをより明確に説明しようとします。

何が起こっているのか:私のWebアプリは私のアプリと同じウィンドウでURLを開きます。 プロセスフローは

何が起こるべきか:Facebookページがサファリの新しいタブで開きます。(Webアプリではなく、サファリでサイトを開くと、これを実証できます。)

プロセスフローは

今、違いがわかるといいのですが。Safariで新しいタブのリンクを開く必要があります。しかし、今は「戻るボタン」がないウィンドウで開いたままになっています。

2つの写真の唯一の違いはです。最初の写真は、ホーム画面に保存されているWebサイトです。2番目の写真はSafariで直接開いたWebサイトです。

4

1 に答える 1

5

グーグル検索をして、 macrumors.comでこのスレッドを見つけました。同じ質問で次のことを説明しています。

WebApp内で開き、Safariで開かないリンクの場合は、次を使用します。

<a onclick="parent.location='http://url.com/page.html'">Link</a>

Safariで開きたいリンクには、標準のHTMLリンクを使用します。

<a href="http://url.com/another_page.html">Link</a>

そこで、別のGoogle検索を行って、JavaScriptでiOSを使用しているかどうかを検出する方法を見つけました:http://forrst.com/posts/JavaScript_iOS_Detection-Ofa

これが私の解決策です:

var url = "http://www.google.com/";

// Get the user agent string
var deviceAgent = navigator.userAgent;
// Set var to iOS device name or null
var ios = deviceAgent.toLowerCase().match(/(iphone|ipod|ipad)/);

$('#btn-fb-share').click(function() {

    if (ios) {
        // This is the line that matters
        $(this).attr('href', url);
    } else {
        // Your code that works for desktop browsers
        $('#btn-fb-share').attr("disabled", "disabled");
        window.open(url,2789432749274249,"location=yes,menubar=yes");
    }
});

デスクトップのChromeで、SafariからiOSで、ホーム画面WebAppを介してテストしました。これが私の作業テストへのリンクです:http://flackend.com/other/ios-test/

targetiOSのSafariの新しいタブで開くには、リンクをに設定する必要があることに注意してください_blank(Safariアプリで開いた場合はWebAppインスタンスからではありません)。これは、HTMLマークアップで直接設定することも、を使用してjQueryで行うこともできますattr

于 2012-07-18T16:45:14.323 に答える