これで髪を伸ばしてる…
私のアプリはとフロントエンドでjquery-mobile (1.1.1)
実行されています。(ipad1 + 3、iOS3 + 5)のMobile Safariでアプリを実行すると正常に動作しますが、ホーム画面のアイコンからアプリを開くとjquery (1.7.2)
requireJS
<meta name="apple-mobile-web-app-capable" content="yes" />
新しいページをロードしたり、ページ間を行ったり来たりするすべての Jquery Mobile AJAX リクエストが失敗します。代わりに、リンク先のページが新しく読み込まれる前に、ページの読み込みエラーメッセージが短時間点滅し、アプリを再起動します。
私はこれに2日間座っていて、次のすべてを試しました:
manifest
(私は実際にはマニフェストを使用していません。それが役立つかどうかを確認しようとしました)
- ネットワーク リソースを追加する> 役に立たなかった
requireJS
- 私のアプリからrequireJSを完全に削除する>まだ機能しない
- キャッシュ無効化> 役に立たなかった
offline
しかし、ページが読み込まれず、ナビゲーションが壊れていることにまだ悩まされています。
私にとって理にかなっている 1 つの原因は、Safari がフルスクリーン モードと Mobile Safari で異なる HTTP User-Agent 文字列を使用していると主張したこのブログ投稿でした。フルスクリーンで渡された文字列が認識できないように見えるため、基本的なブラウザ設定のみが期待されます (JavaScript のサポートがないなど)。
投稿された回避策 ( for ASP.net
) は、次のようにユーザー エージェントを偽造しています。
protected void Page_PreInit(object sender, EventArgs e) {
if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1) {
this.ClientTarget = "uplevel";
}
}
質問:
iOS フルスクリーン モードがアクティブな場合、Javascript/Jquery にこのような修正 (~ ユーザー エージェントの偽装) を含めるにはどうすればよいですか (これはまったく検出可能ですか)? また、このアプローチに注意点があるかどうかも知りたいですか? 間違っているようです...