私のブラウザー (Firefox、Chrome、iPad の Safari) で完全に動作する小さな Web アプリを開発しました。次に、アプリを変更して、iPad でスタンドアロンの Web アプリとして実行することにしました。ウェブ上でかなり良い情報を見つけたので、これは問題ありませんでした。
多くのアプリ内部リンクを使用しているため、次の JavaScript jQuery コードをアプリに追加しました。
if (window.navigator.standalone) {
// running as web app
$(function () {
$('a').each(function () {
if (!$(this).hasClass('external')) {
var href = $(this).attr('href');
$(this).attr('href', 'javascript:this.location = \'' + href + '\'');
}
});
});
}
アプリがスタンドアロン モードで実行されている場合、このコードは CSS クラスを持たないすべてのリンクを変更してexternal
、新しい Safari ウィンドウで開かないようにします。このコードは正常に動作します。
問題は、外部リンクを開くと、新しい Safari ウィンドウが開くことです (予想どおり)。しかし、アプリに (4 本指のジェスチャーを使用して) 戻ると、アプリはフリーズします。ホームボタンを押すと、iPad は私のホーム画面を一瞬だけ表示し、すぐに iPad の検索画面に切り替わる。画面をオフにして再度オンにすると、ホーム画面になります。
機能する唯一のジェスチャは、タスク バーを表示するための 4 本指ジェスチャです (その名前ですか?)。タスク バーを使用してアプリを終了すると、アプリは画面に表示されたままになり、iPad はアプリを終了していないかのように動作します (最後の段落を参照)。アプリがクレイジーな方法でクラッシュしたように感じます。
何を間違えたのかわからない。これは非常に単純な Web ページで、JavaScript がほとんどなく、深くネストされていない HTML 構造になっています。
デバイスは、iOS 5.1 を搭載した iPad 2 3G です。
誰でもこれで私を助けることができますか?