WebView加载
webview. loadUrl ( "https://www.baidu.com/" ) ;
web. loadUrl ( "file:///android_asset/js.html" ) ;
WebView 监听
webview. setWebChromeClient ( new WebChromeClient ( ) {
@Override
public void onReceivedTitle ( WebView view, String title) {
super . onReceivedTitle ( view, title) ;
}
@Override
public boolean onJsAlert ( WebView view, String url, String message, JsResult result) {
return super . onJsAlert ( view, url, message, result) ;
}
@Override
public void onProgressChanged ( WebView view, int newProgress) {
super . onProgressChanged ( view, newProgress) ;
}
} ) ;
webview. setWebViewClient ( new WebViewClient ( ) {
@Override
public boolean shouldOverrideUrlLoading ( WebView view, String url) {
view. loadUrl ( url) ;
return true ;
}
@Override
public void onPageStarted ( WebView view, String url, Bitmap favicon) {
super . onPageStarted ( view, url, favicon) ;
}
} ) ;
webview基本设置
WebSettings settings = webview. getSettings ( ) ;
settings. setUseWideViewPort ( true ) ;
settings. setLoadWithOverviewMode ( true ) ;
settings. setBuiltInZoomControls ( true ) ;
settings. setDisplayZoomControls ( false ) ;
settings. setSupportZoom ( true ) ;
settings. setJavaScriptEnabled ( true ) ;
settings. setJavaScriptCanOpenWindowsAutomatically ( true ) ;
settings. setAllowFileAccess ( true ) ;
Android 调用js
web. loadUrl ( "JavaScript:callJSMethod()" ) ;
js调用Android
web. addJavascriptInterface ( this , "android" ) ;
@JavascriptInterface
public void callAndroidMethod ( String str) {
Toast. makeText ( this , "ni" + str, Toast. LENGTH_SHORT) . show ( ) ;
}
html页面
< html>
< title> Demo 测试页面< / title>
< script>
function callJSMethod ( ) {
alert ( '一个js提示信息' ) ;
}
function callAndroidMethod ( ) {
window. android. callAndroidMethod ( 'js调用安卓方法!' )
}
< / script>
< body>
< div>
< button id= "btn_showMsg" onclick= "callAndroidMethod();" > 调用Android端方法< / button>
< / div>
< / body>
< / html>
双击返回
@Override
public void onBackPressed ( ) {
if ( webview. canGoBack ( ) ) {
webview. goBack ( ) ;
} else {
if ( ( System. currentTimeMillis ( ) - exitTime) > 2000 ) {
Toast. makeText ( getApplicationContext ( ) , "再按一次退出程序" ,
Toast. LENGTH_SHORT) . show ( ) ;
exitTime = System. currentTimeMillis ( ) ;
} else {
finish ( ) ;
}
}
}
清除数据
@Override
protected void onDestroy ( ) {
super . onDestroy ( ) ;
if ( web != null) {
web. clearCache ( true ) ;
web. clearHistory ( ) ;
web. clearFormData ( ) ;
web. destroy ( ) ;
}
}