WebView的使用
2019-10-13 本文已影响0人
LeoFranz
官方简介:WebView对象允许您将Web内容显示为活动布局的一部分,但缺少一些完全开发的浏览器的功能。当您需要增强对UI的控制和高级配置选项时,WebView很有用,从而可以将网页嵌入到为应用程序专门设计的环境中。
就理解为是一个基于webkit引擎、展现web页面的控件。4.4后直接使用了Chrome内核。

作用:
- 显示和渲染Web页面
- 直接使用html文件(网络上或本地assets中)作布局
- 可和JavaScript交互调用
和JS的交互



注意事项:
内存泄露,引用context要使用applicationContext,不在xml中定义 Webview ,而是在需要的时候在Activity中创建。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
mWebView = new WebView(getApplicationContext());
mWebView.setLayoutParams(params);
mLayout.addView(mWebView);
销毁activity时候,先让webview加载空,再从viewgroup中移除,再销毁,再置空
@Override
protected void onDestroy() {
if (mWebView != null) {
mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
mWebView.clearHistory();
((ViewGroup) mWebView.getParent()).removeView(mWebView);
mWebView.destroy();
mWebView = null;
}
super.onDestroy();
}
参考:
最全面的 Webview 详解
你要的WebView与 JS 交互方式 都在这里了
Android WebView 使用漏洞