android中webview的使用以及总结,Android WebView 项目使用总结

由于前段时间的项目对WebView的使用较多,因此总结一下项目中WebView的使用使用过程,以及一些值得注意的地方

WebView 在大部分的WebApp中使用相当广泛,处理好WebView也是一个WebApp的关键

目前的WebView是基于webkit 内核浏览器并且封装在android 的sdk 当中,并且WebView包括以下几个功能

1.加载网站url和加载本地html页面

2.可以与JavaScript代码进行交互

3.webview控件可以高度进行定制

在WebView使用过程中应当注意一下几点

在AndroidManifest.xml 中添加网络访问权限

在WebView中有一个辅助类WebSettings,通过他管理WebView的一些状态以及插件

// webview启用javascript支持 用于访问页面中的javascript

webSettings.setJavaScriptEnabled(true);

//设置WebView缓存模式 默认断网情况下不缓存

webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);

//断网情况下加载本地缓存

webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);}

//让WebView支持DOM storage API

webSettings.setDomStorageEnabled(true);

//让WebView支持缩放

webSettings.setSupportZoom(true);

//启用WebView内置缩放功能

webSettings.setBuiltInZoomControls(true);

//让WebView支持可任意比例缩放

webSettings.setUseWideViewPort(true);

//让WebView支持播放插件

webSettings.setPluginState(WebSettings.PluginState.ON);

//设置WebView使用内置缩放机制时,是否展现在屏幕缩放控件上

webSettings.setDisplayZoomControls(false);

//设置在WebView内部是否允许访问文件

webSettings.setAllowFileAccess(true);

//设置WebView的访问UserAgent

webSettings.setUserAgentString(WebViewUtil.getUserAgent(getActivity(), webSettings));

//设置脚本是否允许自动打开弹窗

webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

// 加快HTML网页加载完成速度

if (Build.VERSION.SDK_INT >= 19) {

settings.setLoadsImagesAutomatically(true);

} else {

settings.setLoadsImagesAutomatically(false);

}

// 开启Application H5 Caches 功能

settings.setAppCacheEnabled(true);

// 设置编码格式

settings.setDefaultTextEncodingName("utf-8");

3.当页面需要调用我们一些原生native的功能时候,可以通过我们自定义的JS接口去实现

//设置WebView JavaScript接口可以供页面JS调用

mWebView.addJavascriptInterface(new JsInterface(), AppUtil.KEY_JS_INTERFACE_NAME);

通过下面定义接口中的方法,如果涉及到一些ui界面上的处理和操作的话,需要在主线程中进行

//接口类

public class JsInterface {

public JsInterface() {

@JavascriptInterface

public void showToast(String msg, int delayType) {

Message message = new Message();

message.what = SHOW_TOAST;

message.arg1 = delayType;

message.obj = msg;mHandler.sendMessage(message);

}

}

}

4.设定WebViewClient和WebChromeClient实现WebView更多功能

通过设置WebViewClient获取页面标题与页面中连接跳转的处理

mWebView.setWebViewClient(new WebViewClient() {

@Override

public void onPageFinished(WebView view, String url) {

//可以获取到WebView的标题Title

setTitle(view.getTitle());

super.onPageFinished(view, url);

}

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

//WebVeiw中连接跳转进行处理跳转到新的Activity

if (WebIntentUtil.isDetailsPage(url)) {

Intent intent = new Intent(EmbeddedBrowserActivity.this, DetailsActivity.class);

intent.putExtra(BbsServerUtil.KEY_URL, url);

startActivity(intent);

return true;

} else {

return super.shouldOverrideUrlLoading(view, url);

}

}

});

待续

由于WebChromeClient的功能较多,所以分为两部分

将一起在下篇与WebView的WebChromeClient一起讲解

WebChromeClient常用API与功能使用详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值