傲渊山岳 发表于 2024-9-28 04:26:09

【Android Studio】Webview 内核升级得三种方法

前言

在APP 中进行网页加载,一样平常采用原生自带的Webview 组件,但在需要加载高版本网页的时候,有时候会遇到加载失败的环境,究其缘故起因重要是内核版本太低,导致加载失败。该组件使用的内核在Android 4.4 (API 19)前 ,重要用得是webkit 的内核;Android 4.4后,直接使用的是Chrome内核。目前Chrome内核已经到了120+,时常会遇到问题,谷歌浏览器可以正常加载网页,但内嵌网页加载就是不行。因此,基于这种环境,考虑进行Webview 组件内核的升级。
可用于检测内核版本的网址: https://liulanmi.com/labs/core.html
关于内核升级,目前重要有3种方法 :


[*]用 X5 腾讯组件,更换Webview 加载网页
[*]用intel 的crosswalk开源项目
[*]在Webview 基础上升级加载的内核
X5 腾讯组件

它跟webview 很像,在进行结构构建时,组件选择 com.tencent.smtt.sdk.WebView ,然后其余方法基本使用跟webview 一样。在腾讯TBS开辟指引 内里有很清楚的先容,而且还可以下载最新的SDK。
<com.tencent.smtt.sdk.WebView
         android:id="@+id/web"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fitsSystemWindows="true"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
但是运行后会发现,依旧无法加载网页,固然导入了 SDK 库,但无法进行内核下载,故无法使用。直接访问阐明中的内核下载毗连,不能访问。在网上找了一圈,是由于X5内核开始收费了,所以该方法无法解决问题。
crosswalk开源项目

用这个方案,一开头就遇到问题,crosswalk的官方网站不能进了,那么库也就不能下,刚好遇到Intel 服务器崩了,我都怀疑是不是因为这个缘故起因。厥后到是在CSDN上下载了 支持ARM 和X86 的 crosswalk-23.53.589.4.aar ,但导入后,运行是正常了,但表现内核版本更低了,离要求的远远达不到。厥后查看了缘故起因,原来是这个项目早就停了…
https://i-blog.csdnimg.cn/direct/6bbcc652f6d4410bb8d0ae2d6f2204c1.png
<org.xwalk.core.XWalkView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/web"/>
而且这边发现原生的都比它高,当然也有大概跟加载的crosswalk-23.53.589.4.aar版本低有关系吧,由于无法进官网,导致这个也无法确定缘故起因。
https://i-blog.csdnimg.cn/direct/5d191902968c4f79a7738a5539cd432d.png
webview升级加载的内核(完美解决)

这个只能说真得是强得离谱,直接用外部下载的内核去进行webview 更换,然后每次初始化内核时,进行加载。而且可以选择arm 大概x86 ,内核版本目前都是120+的,很舒服。webview 使用还是跟之前的如出一辙,只是加了内核升级这一过程。
https://i-blog.csdnimg.cn/direct/8c11bcf190cf40899176a36f9d3f6ed2.png
<WebView
      android:id="@+id/webview"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
总结



[*] 目前三个方案的demo ,已经都整理,直接可以运行使用。
[*] 升级的内核资源已经都下载,方便后续直接内嵌,目前demo 内里是采用在线下载这个方式,当然也是可以的。
[*] 在采用在Webview 基础上升级加载的内核 方案时,由于第三库是开源的,我已经从github上下载下来,可以方便阅读理解。
[*] 对这些文件的阐明,以及研究内核升级过程中借鉴的资料链接,已经都整理在了 阐明 中,方便后续查看。
https://i-blog.csdnimg.cn/direct/7d66605e7e0840d6a0bee54b541bbd73.png


[*]资源已经上传,有需要自行下载即可。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Android Studio】Webview 内核升级得三种方法