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]
[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]
相关文章推荐
- Objective-C-------NSDictionay按照字母的顺序显示字典中的内容
- Android 媒体播放(Media Playback)
- 【Graphic】Android5.0 Graphic(1) VSync与Project Butter
- android获取本地版本号
- Android下强制打开软键盘
- LeetCode Happy Number
- Spring中的jdbcTemplate.queryForObject()使用
- Android应用开发EditText文本内容变化监听方法
- Android 获取屏幕尺寸
- Servlet页面注册用户的小程序(一)
- 怎么监听Android软键盘的打开和关闭
- Unity3d
- Android之RadioButton多行
- Android samples API Demos之UI篇1(ActionBarCompat-ListPopupMenu)
- android 得到连接热点的ip的方法
- Swift类和结构
- Android基础入门教程——2.4.5 ListView之checkbox错位问题解决
- iOS中触摸事件详解和使用
- android4.4以上,实现状态栏颜色设置
- 仿Android5.0 Heads-Up风格的Toast提示