您好,欢迎来到源码搜藏!分享精神,快乐你我!提示:担心找不到本站?在百度搜索“源码搜藏”,网址永远不丢失!
  • 首 页
  • 在线工具
  • 当前位置:首页 > 安卓源码 > 技术博客 >

    Android中关于WebView的用法!

    时间:2017-01-06 17:06 来源:互联网 作者:源码搜藏 浏览:收藏 挑错 推荐 打印

    关于WebView的各种用法,希望大家也可以补充!谢谢 直接上需要用的代码(PS:用到WebView就必须要家访问网络权限) //1.加载一个网页链接或加载本地网页 webView.loadUrl(url); //file:///android_asset/为加载本地网页的规范,后面是本地html文件名,androi

    关于WebView的各种用法,希望大家也可以补充!谢谢

    直接上需要用的代码(PS:用到WebView就必须要家访问网络权限)
    //1.加载一个网页链接或加载本地网页
     webView.loadUrl(url);
    //“file:///android_asset/”为加载本地网页的规范,后面是本地html文件名,androidstudio下要自己新建一个assets文件
     WebView.loadUrl("file:///android_asset/xxx.html")
    //2.设置WebSettings的属性
    WebSettings webSettings =   webView .getSettings();
    webSettings.setJavaScriptEnabled(true);//设置WebView是否允许执行JavaScript脚本,默认false,不允许。
    webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);//设置缓存模式,通过制定LOAD_DEFAULT, LOAD_CACHE_ELSE_NETWORK, LOAD_NO_CACHE,LOAD_CACHE_ONLY的其中一项来重写其行为。
    webSettings.setSupportZoom(true);//设置WebView是否支持多窗口。如果设置为true,主程序要实现onCreateWindow(WebView, boolean, boolean, Message),默认false。
    webSettings.setUseWideViewPort(true);

    更多WebSettings属性可以参考WebSettings属性大全

    //3.设置WebViewClient
    //关于 shouldOverrideUrlLoading 返回值的误区:网上很多解释是 return true 代表在本WebView中打开链接,return false代表调用系统浏览器打开链接。其实只要设置了WebViewClient,则就不会调用系统浏览器。
    webView.setWebViewClient(new MyWebViewClient());
    class MyWebViewClient extends WebViewClient {
    
           @Override
           public void onPageStarted(WebView view, String url, Bitmap favicon) {
               super.onPageStarted(view, url, favicon);
           }
    
           @Override
           public void onPageFinished(WebView view, String url) {
               super.onPageFinished(view, url);
           }
    
           @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                view.loadUrl(request.toString());//如果没在onReceivedSslError方法中作处理,则必须使用该方法才能正常在本地访问淘宝天猫等网站,用shouldOverrideUrlLoading(WebView view, String url)方法不能正常访问
                return false;//建议返回false
            }
    
           @Override
           public void onReceivedError(final WebView view, final WebResourceRequest request, WebResourceError error) {
            //当WebView加载失败时在这里处理,可以考虑加载一个自定义View或加载一个本地html文件
           }
    
           @Override
           public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
               handler.proceed();//接受信任所有网站的证书,使用此方法可以解决淘宝,天猫等网站无法正常在本地加载的问题
           }
       }
    //4.设置setWebChromeClient
    //WebChromeClient主要用来辅助WebView处理Javascript的对话框、网站图标、网站标题以及网页加载进度等。通过WebView的setWebChromeClient()方法设置。
     webView.setWebChromeClient(new WebChromeClient(){
                @Override
                public void onProgressChanged(WebView view, int newProgress) {
                    
                }
            });
    
    //5.设置WebView回退监听
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
      if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
      }
      return super.onKeyDown(keyCode, event);
    }
    Android中关于WebView的用法!转载http://www.codesocang.com/anzhuoyuanma/boke/34320.html
    标签:网站源码