欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android webview使用方法总结

程序员文章站 2022-04-13 22:46:17
android webview使用方法总结           &nb...

android webview使用方法总结

           这里对android webview的几种用法进行了总结,提供了九种用法,都要简单实例,大家可以参考下:

1. 打开网页时不调用系统浏览器, 而是在本webview中显示:

mwebview.setwebviewclient(new webviewclient(){
   @override
   public boolean shouldoverrideurlloading(webview view, string url) {
     view.loadurl(url);
     return true;
   }
 });

2. 通过java代码调用javascript

websettings websettings =  mwebview .getsettings();    
websettings.setjavascriptenabled(true); 
mwebview.addjavascriptinterface(new object() {    
      public void clickonandroid() {    
        mhandler.post(new runnable() {    
          public void run() {    
            webview.loadurl("javascript:wave()");    
          }    
        });    
      }    
    }, "demo"); 

3. 按返回键时, 不退出程序而是返回上一浏览页面:

public boolean onkeydown(int keycode, keyevent event) {    
    if ((keycode == keyevent.keycode_back) && mwebview.cangoback()) {    
      mwebview.goback();    
      return true;    
    }    
    return super.onkeydown(keycode, event);    
  }

4. 打开页面时, 自适应屏幕:

websettings websettings =  mwebview .getsettings();    
websettings.setusewideviewport(true);//设置此属性,可任意比例缩放
websettings.setloadwithoverviewmode(true);

5. 便页面支持缩放:

websettings websettings =  mwebview .getsettings();    
websettings.setjavascriptenabled(true); 
websettings.setbuiltinzoomcontrols(true);
websettings.setsupportzoom(true);

6.如果webview中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

webview.requestfocusfromtouch();

7.webview 加载界面主要调用三个方法:loadurl、loaddata、loaddatawithbaseurl.

1、loadurl      直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif) 
2、loaddata      显示文字与图片内容 (模拟器1.5、1.6) 
3、loaddatawithbase 显示文字与图片内容(支持多个模拟器版本) 

8.websettings 的常用方法介绍

setjavascriptenabled(true); //支持js

setpluginsenabled(true); //支持插件 

setusewideviewport(false); //将图片调整到适合webview的大小 

setsupportzoom(true); //支持缩放 

setlayoutalgorithm(layoutalgorithm.single_column); //支持内容重新布局 

supportmultiplewindows(); //多窗口 

setcachemode(websettings.load_cache_else_network); //关闭webview中缓存 

setallowfileaccess(true); //设置可以访问文件 

setneedinitialfocus(true); //当webview调用requestfocus时为webview设置节点

webview websettings.setbuiltinzoomcontrols(true); //设置支持缩放 

setjavascriptcanopenwindowsautomatically(true); //支持通过js打开新窗口 

setloadwithoverviewmode(true); // 缩放至屏幕的大小

setloadsimagesautomatically(true); //支持自动加载图片

9.webviewclient 的方法全解

doupdatevisitedhistory(webview view, string url, boolean isreload) //(更新历史记录) 

onformresubmission(webview view, message dontresend, message resend) //(应用程序重新请求网页数据) 

onloadresource(webview view, string url) // 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 

onpagestarted(webview view, string url, bitmap favicon) //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。 

onpagefinished(webview view, string url) //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。 

onreceivederror(webview view, int errorcode, string description, string failingurl)// (报告错误信息) 

onreceivedhttpauthrequest(webview view, httpauthhandler handler, string host,string realm)//(获取返回信息授权请求) 
 
onreceivedsslerror(webview view, sslerrorhandler handler, sslerror error) //重写此方法可以让webview处理https请求。
 
onscalechanged(webview view, float oldscale, float newscale) // (webview发生改变时调用) 

onunhandledkeyevent(webview view, keyevent event) //(key事件未被加载时调用) 

shouldoverridekeyevent(webview view, keyevent event)//重写此方法才能够处理在浏览器中的按键事件。 

shouldoverrideurlloading(webview view, string url) 
//在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的url,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!