1
본질적으로 WebApp
으로 리디렉션되는 간단한 Android 앱을 만들고 있습니다. 이렇게하려면 WebView
을 사용합니다. 나는 "net ::: ERR_CACHE_MISS"오류가 발생하는데, 실패한 로그인 시도와 오리엔테이션 변경이있을 때만입니다. 왜 이것이 될 수 있는지 아는 사람 있습니까? 나는 거의 긍정적이다. WebApp
으로 리디렉션하고있다. 아래잘못된 로그인 후 화면 회전시 Android Web App이 깨집니다.
코드 :
public class MainActivity extends Activity {
WebView myWebView;
String webURL = "omitted";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
if (savedInstanceState == null) {
myWebView.loadUrl(webURL);
}
else {
((WebView) findViewById(R.id.webview)).restoreState(savedInstanceState);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
myWebView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
myWebView.restoreState(savedInstanceState);
}
}
당신을 감사합니다! 이 작동합니다. 이것이 캐싱에 어떻게 도움이되는지 설명해 주시겠습니까? – James