cordova のイベントリスナーで設定が残ってる模様
Androidのバックボタンのイベントリスナーをハックして、JS側の処理を追加したい。 document.addEventListener("backbutton", function(){}, false);
関数としてはこれで可能。
Apache Cordova API Documentation
これを利用してバックボタンでの処理を独自のものにしてしまう。
ここまでは問題なくできました。ハードボタンのイベントを取れるなんて素敵。なんて思ってたり。
問題点
ここからちょっと不明な点が発生。
イベントを設定したページから、次のページへの遷移後エラーが発生し始める。
戻るボタンを押すことでエラーが発生する。
次のページへ遷移しても、イベントが残り続けている??
戻れなくなった。。。
W/UnimplementedWebViewApi(1956): Unimplemented WebView method onKeyDown called from: android.webkit.WebView.onKeyDown(WebView.java:2301) D/CordovaLog(1956): : Line 1 : Uncaught ReferenceError: cordova is not defined I/chromium(1956): [INFO:CONSOLE(1)] "Uncaught ReferenceError: cordova is not defined", source: (1)
別ページに遷移しても、前のページのイベントが残る現象はWEBをやっていると意味がわからない。
エラー原因としてはcordova.jsを読み込んでいないページの為に発生していると思われる。
しかし、ページ遷移したんだから、イベントも消えてくれよ。。。
このあたりがWEBとアプリの違いなのか、バグなのかが判明できていないけど、アプリのブラックボックスはちょっとつらいです。
なんとか原因がわかったので、イベントを解除することで対応。
他にやり方がある気がしますけど、暫定対処です。