WebView的简单使用
2015-07-31 15:20
441 查看
1.首先看下调用系统的自带浏览器或者自己下载的浏览器
![](http://img.blog.csdn.net/20150731152341687?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.若要自己实现一个浏览器,只需要在布局文件中差入WebView即可
还必须使用loadUrl();方法
webView=(WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");
并且在清单文件中加入网络访问权限
但是如此的话还是会去默认调用系统自带的浏览器
3.要使WebView自己加载效果则必须加入另一个方法去覆盖原始的WebView调用方法
WebViewClient帮助WebView去处理一些页面控制的请求通知
4.在WebView中使用Javascript
启用JavaScript可以通过WebView中带有的WebSetting来启用它
你可以通过getSettings()来获取WebSettings的值,
然后通过setJavaScriptEnabled()来启用JavaScript
WebView webView=(WebView)findViewById(R.id.webview);
WebSetings webSettings=webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//则可以支持JavaScript的脚本语言
5.后退与前进
当你的WebView覆盖URL加载,他会自动生成历史访问记录,你可以通过goBack()
或goForward()向前或向后访问过的站点,否则一旦按了返回键则就直接退出了应用
给人一种很不好的体验
7判断页面加载过程
直观显示页面的加载过程
制作进度条给用户以良好的体验效果
8.WebView缓存的运用
使用WebSettings settings=webView.getSettings();
优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不适用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
<pre name="code" class="java">Uri uri=Uri.parse(url);//url为你要的链接地址 Intent intent =new Intent(Intent.ACTION_VIEW,Uri); startActivity(intent);
2.若要自己实现一个浏览器,只需要在布局文件中差入WebView即可
<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" </WebView>
还必须使用loadUrl();方法
webView=(WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");
并且在清单文件中加入网络访问权限
<manifest> <uses-permission android:name="android.permission.INTERNET"/> ... </manifest>
但是如此的话还是会去默认调用系统自带的浏览器
3.要使WebView自己加载效果则必须加入另一个方法去覆盖原始的WebView调用方法
WebViewClient帮助WebView去处理一些页面控制的请求通知
webView.setWebViewClient(new WebViewClient());
如果以上还不行的话,就重写WebViewClient()中的方法
中使其返回值 使用view.loadUrl(url); True:控制网页在WebView中去打开 flase:控制第三方或系统自带
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {<span style="white-space:pre"> </span>
// TODO Auto-generated method stub <span style="white-space:pre"> </span>return true; }
4.在WebView中使用Javascript
启用JavaScript可以通过WebView中带有的WebSetting来启用它
你可以通过getSettings()来获取WebSettings的值,
然后通过setJavaScriptEnabled()来启用JavaScript
WebView webView=(WebView)findViewById(R.id.webview);
WebSetings webSettings=webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//则可以支持JavaScript的脚本语言
5.后退与前进
当你的WebView覆盖URL加载,他会自动生成历史访问记录,你可以通过goBack()
或goForward()向前或向后访问过的站点,否则一旦按了返回键则就直接退出了应用
给人一种很不好的体验
@Override public boolean onKeyDown(int keyCode,KeyEvent event) { if(keyCode==KeyEvent.KEYCEDE_BACK) { if(webView.canGoBack()) { webView.goBack(); return true; } else { System.exit(0);//退出程序 } } return super.onKeyDown(keyCode,event); }
7判断页面加载过程
直观显示页面的加载过程
制作进度条给用户以良好的体验效果
private ProgressDialog dialog; webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view,int newProgress) { //newProgress 是1到100的数字,正好从1--100的标识进度条 if(newProgress==100) {//加载完成 closeProgress(); } else { //加载中,打开ProgressDialog openProgress(newProgress); } } }); private void closeProgress() { if(dialog!=null&&dialog.isShowing()) { dialog.dismiss(); dialog=null; } } private void openProgress(int newProgress) { if(dialog==null) { dialog=new ProgressDialog(MainActivity.this); dialog.setTitle("正在加载"); dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog.setProgress(newProgress); dialog.show(); } else { dialog.setProgress(newProgress); } }
8.WebView缓存的运用
使用WebSettings settings=webView.getSettings();
优先使用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不适用缓存
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
相关文章推荐
- 转 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新
- Vuforia应用之屏幕截图功能
- Android自定义视图
- Android像素与dip的关系
- webView调用系统地图,电话,和跳转链接的方法
- webView调用系统地图,电话,和跳转链接的方法
- 使用VBScript实现设置系统环境变量的小程序
- [ios]关于gps以及坐标系
- UI008---ios、swift推荐书籍强烈推荐
- android studio升级失败提示 Connection failed解决方法
- Unity Assets目录下的特殊文件夹名称
- Android开发加载音乐文件时
- iOS开发-Day14-OC封装
- 使用webservice实现App与服务器端数据交互
- Android自定义视图
- Android 5.0 android:elevation 如果给button设置效果
- Android AlertDiaog自定义EditText自动弹出软键盘
- objective-c 编程的几个调试技巧
- 【TabLayout】 Android 另一种Tab的实现
- 自定义view(二)