一、按BACK、HOME键后activity的生命周期问题
按Back键后activity被销毁,HOME则没有被销毁。
activity的生命周期
二、webview捕获js的alert、confirm、prompt事件
使用WebChromeClient主要辅助WebView处理Javascript的对话框、网站图标、网站title、加载进度等
WebViewClient与WebChromeClient的区别
WebChromeClient的使用 参看:http://618119.com/archives/2010/12/20/199.html
三、处理webview显示网页白边问题
解决方法:使用的webview的setScrollBarStyle方法设置滚动条位置的属性,android:scrollbarStyle 可以是insideOverlay可以是outsideOverlay。
具体示例:
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
四、手机横竖屏切换问题
1、让手机横竖屏切换不销毁当前activity
解决方法:在Mainifest.xml的Activity元素中加入android:configChanges=”orientation|keyboardHidden”属性,加入这条属性的含义是,应用程序将会处理屏幕方向和键盘状态(推出或合上)信息的改动。经过测试,加上这条属性之后,Activity没有被销毁,页面还在原来的位置。
2、手机横竖屏切换设置
五、webview隐藏地址栏
解决方法:使用WebViewClient显示网页内容
webview.setWebViewClient(new WebViewClientDemo());
private class WebViewClientDemo extends WebViewClient {
@Override
// 在WebView中而不是默认浏览器中显示页面
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
六、webview前进、后退操作
覆写Activity的onKeyDown方法 或者 webview捕获按键操作
/*
* webview的后退操作
* */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webViewMain.canGoBack()) {
webViewMain.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
webview.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { //表示按返回键时的操作
webview.goBack(); //后退
//webview.goForward();//前进
return true; //已处理
}
}
return false;
}
});
七、WebView处理404、505等问题