packagecom.tsh.mywebview;importandroid.annotation.SuppressLint;importandroid.app.Activity;importandroid.app.ProgressDialog;importandroid.graphics.Bitmap;importandroid.os.Bundle;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.Window;importandroid.webkit.JavascriptInterface;importandroid.webkit.WebSettings;importandroid.webkit.WebView;importandroid.webkit.WebViewClient;importandroid.widget.Toast;public class MainActivity extendsActivity {privateWebView webview;privateProgressDialog pd;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
pd=new ProgressDialog(this);
pd.setMessage("正在加载...");//webview的简单设置
webview=(WebView) findViewById(R.id.wv_internet);//http://100.65.187.106/test.php
webview.loadUrl("http://100.65.187.106/test.php");
WebSettings websettings=webview.getSettings();
websettings.setSupportZoom(true);
websettings.setBuiltInZoomControls(true);//js交互
new MyJavascript().showToast("111");
websettings.setJavaScriptEnabled(true);
webview.addJavascriptInterface(new MyJavascript(), "Android");
webview.loadUrl("javascript:documentWrite('测试')");
webview.setWebViewClient(newWebViewClient(){
@Overridepublic voidonPageStarted(WebView view, String url, Bitmap favicon) {
pd.show();
}
@Overridepublic voidonPageFinished(WebView view, String url) {
pd.dismiss();
}
});
}//暴露给js的功能接口
public classMyJavascript{//显示吐司//如果target 大于等于API 17,则需要加上如下注解
@JavascriptInterfacepublic voidshowToast(String text) {
Toast.makeText(MainActivity.this, text, 1).show();
}//显示loading
@JavascriptInterfacepublic voidshowProgressDialog(String text) {
pd.setMessage(text);
pd.show();
}
}//后退键
@Overridepublic boolean onKeyDown(intkeyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_BACK&&webview.canGoBack()){
webview.goBack();return true;
}return super.onKeyDown(keyCode, event);
}//菜单键
@Overridepublic booleanonCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0, "刷新");
menu.add(0, 0, 1, "后退");
menu.add(0, 0, 2, "前进");return super.onCreateOptionsMenu(menu);
}//菜单点击事件
@Overridepublic booleanonOptionsItemSelected(MenuItem item) {switch(item.getOrder()) {case 0:
webview.reload();break;case 1:if(webview.canGoBack()){
webview.goBack();
}break;case 2:if(webview.canGoForward()){
webview.goForward();
}break;
}return super.onOptionsItemSelected(item);
}
}