之前对于webview的认识很肤浅,这次正好研究一下:
创新互联建站,是成都地区的互联网解决方案提供商,用心服务为企业提供网站建设、app开发定制、小程序制作、系统按需网站策划和微信代运营服务。经过数10余年的沉淀与积累,沉淀的是技术和服务,让客户少走弯路,踏实做事,诚实做人,用情服务,致力做一个负责任、受尊敬的企业。对客户负责,就是对自己负责,对企业负责。在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:
重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。
返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前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);
}
网页前进按钮。
if(webView.canGoForward()){
webView.goForward();
}else{
Toast("已经是最后一页了,不能再前进了");
}
点击刷新按钮的时候,执行webview.reload();
如果想在页面加载的时候添加提示信息,可以复写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许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。