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

Android:WebView显示网页

2016-09-26 23:01 555 查看
WebView
通过Intent调用系统浏览器
Uri uri = Uri.parse(url);//url链接地址
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);

如何使用WebView:
1.将WebView加入到你的应用
      布局中加入<WebView>元素
2.使用WebView加载页面
      要在WebView加载页面,使用loadUrl()函数
         i:web资源:webView.loadUrl("http://www.baidu.com");
         ii:本地文件使用: webView.loadUrl("file:///android_asset/xxxx.html");本地文件存放在:assets文件中
--使页面获得焦点: webView.requestFocus(); /防止失去响应
3.获取网络访问权限:
自己写浏览器就要获取INTERNET权限:
<uses-permission android:name="android.permission.INTERNET">

4、处理页面导航
当用户点击一个WebView中的页面的链接时,通常,是由默认的浏览器打开并加载目标URL的。你可以在WebView
中覆盖这一行为,那么链接就会在WebView中打开。
webView.setWebViewClient(new WebViewClient());

5、在WebView中使用Javascript
通过WeibView中带有的WebSettings来启动Javascript:getSettings()来获取WebSettings的值,然后通过setJavaScriptEnabled()来启用Javascript
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

6、当WebView覆盖了Url的加载,会自动保存历史记录,返回上一页面
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO 自动生成的方法存根
    Toast.makeText(this, "当前的页面是"+url, Toast.LENGTH_SHORT).show();
    if(keyCode==KeyEvent.KEYCODE_BACK){
    if(webView.canGoBack()){
    webView.goBack();//返回上一页面
    return true;
    }else{
       
System.exit(0);//退出程序
    }
    }
   
    return super.onKeyDown(keyCode, event);
    }
7、制作进度条
        //设置WebView的加载进度条的对话框
        webView.setWebChromeClient(new WebChromeClient(){
        @Overr
dbff
ide
        public void onProgressChanged(WebView view, int newProgress) {
        // newProgress是1-100之间的整数
        if(newProgress==100){
        //网页加载完成
        closeDialog();
        }else{
        //网页正在加载
        openDialog(newProgress);
        }
        super.onProgressChanged(view, newProgress);
        }

private void openDialog(int newProgress) {
// TODO 自动生成的方法存根
if(dialog==null){
dialog = new ProgressDialog(WebView1Activity.this);
dialog.setTitle("正在加载中");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(newProgress);
dialog.show();
}else{
dialog.setProgress(newProgress);
}
}

private void closeDialog() {
// TODO 自动生成的方法存根
if(dialog!=null&&dialog.isShowing()){
dialog.dismiss();
dialog=null;
}
}
        });
8、WebView缓存的运用
优先使用缓存:
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用缓存:
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: