Android:最全面的 Webview 详解

Android:最全面的 Webview 详解,第1张

WebView是一个基于webkit引擎、展现web页面控件

一般来说Webview可单独使用,可联合其子类一起使用,所以接下来,我会介绍:

常见用法:Back键控制网页后退

配置步骤1:添加访问网络权限 (AndroidManifest.xml)

配置步骤2:生成一个WebView组件(有两种方式)

配置步骤3:进行配置-利用WebSettings子类 (常见方法

常见用法:设置WebView缓存

注意: 每个 Application 只调用一次 WebSettings.setAppCachePath(),WebSettings.setAppCacheMaxSize()

常见方法1:shouldOverrideUrlLoading()

常见方法2:onPageStarted()

常见方法3:onPageFinished()

常见方法4:onLoadResource()

常见方法5:onReceivedError()

常见方法6:onReceivedSslError()

常见方法1: onProgressChanged()

常见方法2: onReceivedTitle()

具体请看我写的文章 Android WebView与JS的交互方式 最全面汇总

3.4.1 不在xml中定义 Webview ,而是在需要的时候在Activity中创建,并且Context使用 getApplicationgContext()

3.4.2 在 Activity 销毁( WebView )的时候,先让 WebView 加载null内容,然后移除 WebView,再销毁 WebView,最后置空。

步骤1:添加访问网络权限

AndroidManifest.xml

步骤2:主布局

activity_main.xml

步骤3:根据需要实现的功能从而使用相应的子类及其方法(注释很清楚了)

MainActivity.java

背景:原生时间紧没时间开发任务量大的任务,而前端又闲着打酱油

方案:原生+webview混合开发

缺点:对于比较复杂的页面,webview在性能上力不从心;且与原生通信频繁也增加了隐藏的工作量

优点:能自带支持动态更新(js),能充分利用人力

webview是一个基于webkit引擎,展示web页面的控件。Android上的webview在低版本和高版本采用了不同的webkit版本内核,Android4.4(19)后直接使用了Chrome内核;WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求,页面加载,渲染,页面交互进行强大的处理。一般来说webview可单独使用,也可联合其工具类一起使用

移动应用的主体是webview,主要以网页语言编写,穿插Native功能的Hybrid App开发类型。激活webview为活跃状态,能正常执行网页的响应;当webview 的页面被失去焦点切换到后台不可见状态onPause时,需要通知自己暂停所有的动作,比如DOM的解析,plugin的执行,JavaScript的执行等

1,显示和渲染web页面

2,直接使用本地assets或者网络上的html文件作为布局

3,可和JavaScript进行互相调用

1,直接在布局文件里写死

2,动态添加进viewgroup中

注:不管以哪种方式,都必须注意webview的销毁,否则可能会造成内存泄漏最终导致内存溢出crash

下面是WebView的一些常用的方法列举,一些已经过时的方法未列出

下面是WebSettings的一些常用的方法列举,一些已经过时的方法就没有写出来了

一般不管是动态生成还是xml写死,只要处理好了引用持有问题,就能有效的避免内存泄漏;下面是我尝试的方案,在工具类WebViewUtils.java里封装好,在activity销毁的时候调用

1,清除webview缓存和记录

2,可以设置不启用缓存

3,H5的一些控件标签不支持导致的白屏

4,xml启用软件加速

5,通过menifest的来配置,在目标webview的activity设置

解决方案:

解决方案:

解决方案:

上一篇: Flutter入门-01-工程创建&目录介绍

Android和iOS系统都提供了标准的浏览器控件,在android中是WebView,ios中为UIWebView。在iOS中你实例化一个UIWebView即可调用loadRequest来加载一个网页,但是在Android中你不仅需要创建一个WebView,还需要做一些其他的事情。

在AndroidManifest.xml中添加网络访问权限,没有权限是访问不了网络的。

在使用WebView的Activity中添加如下代码:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11541219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存