关于android的webview-创新互联

之前对于webview的认识很肤浅,这次正好研究一下:

创新互联建站,是成都地区的互联网解决方案提供商,用心服务为企业提供网站建设、app开发定制、小程序制作、系统按需网站策划和微信代运营服务。经过数10余年的沉淀与积累,沉淀的是技术和服务,让客户少走弯路,踏实做事,诚实做人,用情服务,致力做一个负责任、受尊敬的企业。对客户负责,就是对自己负责,对企业负责。
  1. 在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:

  2. 重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。

  3. 返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前activity,于是要对返回键做处理.

    @Override

        public boolean onKeyDown(int keyCode, KeyEvent event) {

           if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {

              webView.goBack();

             return true;

            } else

                return super.onKeyDown(keyCode, event);

        }

  4. 网页前进按钮。

    if(webView.canGoForward()){

                    webView.goForward();

     }else{

             Toast("已经是最后一页了,不能再前进了");

     }

  5. 点击刷新按钮的时候,执行webview.reload();

  6. 如果想在页面加载的时候添加提示信息,可以复写webclient的

    onPageStarted(WebView view, String url, Bitmap favicon){

    }

    onPageFinished(WebView view, String url){}

    例子:

    @Override
               public void onPageStarted(WebView view, String url, Bitmap favicon) {
                   if(progDlg == null || !progDlg.isShowing()){
                       progDlg = new ProgressDialog(ctx);
                      progDlg.setMessage("正在加载,请稍候。。。");
                   }
                  progDlg.show();
               }

         @Override
          public void onPageFinished(WebView view, String url) {
               progDlg.dismiss();
           }

7.如果想知道加载进度,需要调用另一个类WebChromeClient。

例子:

webView.setWebChromeClient(new WebChromeClient(){

           @Override
          public void onProgressChanged(WebView view, int newProgress) {
               Message msg = new Message();
                               msg.what = 200;
                               msg.obj = newProgress;
                               handler.sendMessage(msg);
           }
}

然后在handler里更新进度条。

private Handler handler = new Handler(){
       public void handleMessage(android.os.Message msg) {
           switch (msg.what) {
           case 200:
               int progress = (Integer) msg.obj;
               progressBar.setProgress(progress);
              break;

           default:
              break;
           }
       };
   };

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:关于android的webview-创新互联
网页网址:http://ybzwz.com/article/dghchd.html