您的位置:首页 > 移动开发

WebView

2015-09-22 16:03 316 查看
[align=left][/align]
[align=left]声明具有INTERNET权限[/align]
[align=left] <uses-permission android:name= "android.permission.INTERNET" />[/align]
[align=left][/align]
[align=left][/align]
[align=left][/align]
[align=left][/align]
[align=left]private String url="http://stareblankly.cn";[/align]
[align=left] private WebView webView ;[/align]
[align=left] private ProgressDialog progressDialog ;[/align]
[align=left] @Override[/align]
[align=left] protected void onCreate(Bundle savedInstanceState) {[/align]
[align=left] super.onCreate(savedInstanceState);[/align]
[align=left] setContentView(R.layout. activity_main);[/align]
[align=left] Uri uri=Uri. parse(url);[/align]
[align=left] Intent intent= new Intent(Intent.ACTION_VIEW,uri);[/align]
[align=left] startActivity(intent);[/align]
[align=left] init();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] private void init() {[/align]
[align=left] webView=(WebView) findViewById(R.id. webView);[/align]
[align=left] webView.loadUrl( "file:///android_asset/az.html" ); //加载本地资源[/align]
[align=left] webView.loadUrl( "http://www.baidu.com"); //加载网络资源[/align]
[align=left] //覆盖webview默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在 webview中打开。[/align]
[align=left] webView.setWebViewClient( new WebViewClient(){[/align]
[align=left] @Override[/align]
[align=left] public boolean shouldOverrideUrlLoading(WebView view, String url) {[/align]
[align=left] // 返回值为true的时候控制网页在 webview中打开,为false网络则在系统或者第三方浏览器中打开[/align]
[align=left] view.loadUrl(url);[/align]
[align=left] return true ;[/align]
[align=left] }[/align]
[align=left] //webviewClient帮助webview去处理一下页面控制和请求通知[/align]
[align=left] });[/align]
[align=left] //启用支持JS[/align]
[align=left] WebSettings settings= webView.getSettings();[/align]
[align=left] settings.setJavaScriptEnabled( true);[/align]
[align=left] //webview 加载页面优先使用缓存加载[/align]
[align=left] settings.setCacheMode(WebSettings. LOAD_CACHE_ELSE_NETWORK);[/align]
[align=left] webView.setWebChromeClient( new WebChromeClient(){[/align]
[align=left] @Override[/align]
[align=left] public void onProgressChanged(WebView view, int newProgress) {[/align]
[align=left] if(newProgress==100){[/align]
[align=left] //网页加载完毕[/align]
[align=left] closeDialog();[/align]
[align=left] } else{[/align]
[align=left] //网页正在加载,打开progressDialog[/align]
[align=left] openDialog(newProgress);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void closeDialog() {[/align]
[align=left] if(progressDialog !=null&&progressDialog.isShowing()){[/align]
[align=left] progressDialog.dismiss();[/align]
[align=left] progressDialog=null ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] private void openDialog(int newProgress) {[/align]
[align=left] if(progressDialog ==null){[/align]
[align=left] progressDialog=new ProgressDialog(MainActivity.this );[/align]
[align=left] progressDialog.setProgressStyle(progressDialog .STYLE_HORIZONTAL);[/align]
[align=left] progressDialog.setProgress(newProgress);[/align]
[align=left] progressDialog.show();[/align]
[align=left] } else{[/align]
[align=left] progressDialog.setProgress(newProgress); //刷新进度[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] });[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] //改写物理按钮--返回按钮的逻辑[/align]
[align=left] @Override[/align]
[align=left] public boolean onKeyDown(int keyCode, KeyEvent event) {[/align]
[align=left] if(keyCode==KeyEvent.KEYCODE_BACK){[/align]
[align=left] if(webView .canGoBack()){[/align]
[align=left] webView.goBack(); //返回上一页[/align]
[align=left] return true ;[/align]
[align=left] } else{[/align]
[align=left] System. exit(0); //退出程序[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] return super .onKeyDown(keyCode, event);[/align]
[align=left] }[/align]
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: