自作アプリ EverLearn や Reibun でヘルプファイルの表示用にローカルに保存した jQuery Mobile を使用しているが、iOS9になってから前の画面に戻る Back ボタンが動作しなくなってしまった。
Stackoverflowの記事 Problems with window.history using JQuery/Javascript on Cordova app in IOS9 – Stack Overflow や jquery mobile – hashListeningEnabled – what exactly does it do? – Stack Overflow を見ると、どうやら Apple が iOS9 で hash をつかった XSS アタックを防ぐ実装を入れたようだ。
jQuery Mobileチームから見ると既知の問題だがこれはバグではないということで、もともと使っていた 1.3.1から最新のjQuery Mobile 1.4.5 に入れ替えても問題は解決しなかった。
Stackoverflow にあったように、mobile.hashListeningEnabled を false にすることで対応した。
1.3.1 から 1.4.5 へのアップデートは、jQuery Mobileを利用するには? – Build Insider を参考にして最低限のファイルのみを入れ替えた。
Backボタンが正常に表示されなくなったため、theme を正しく表示させるために jQuery Mobile 1.4 Upgrade Guide | jQuery Mobile を参照して data-theme=”d” を data-theme=”a” に変更した。
