Android の WebView を回転させた時にモーダルウィンドウが消える
はじめまして。
Android の WebView
を使ったアプリの開発をしています。
WebView
にて、モーダルウィンドウを表示した状態で WebView
を回転させると、
モーダルウィンドウが消えてしまいます。
たとえば、この「モーダルウィンドウのデモ」のモーダルウィンドウを Android の WebView
で表示した状態で、 Android を回転させるとモーダルが消えます。
Google Chrome や Firefox などの既存のブラウザアプリではこれが消えずに残るため、なにか方法があると思うのですがそれが分かりません。
WebView
の回転時にリロードしないように、 AndroidManifest.xml
に以下の記述を加えたり、
<application
...
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
/>
MainActivity
内で onSavedInstance
を使って値を保存したり、
WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView)findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
if(savedInstanceState == null){
webView.loadUrl("http://syncer.jp/_demo/javascript/jquery-modal-window/modal.html");
}
webView.getSettings().setJavaScriptEnabled(true);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
webView.restoreState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
webView.saveState(outState);
}
いろいろと試してみたのですが、どうにも解決できません。
この問題の解決策をご存知の方、お力添えをよろしくお願いします。