Android-X5Web详细集成步骤(原创)

简介: 本文意在了解掌握并快速集成腾讯X5系统内核,更好的提高Android与H5在应用上的渲染交互效果;X5web内核下该如何有效的管理cookie;X5webview下的ndk基本配置说明;X5webview常见问题等等。

本文意在了解掌握并快速集成腾讯X5系统内核,更好的提高Android与H5在应用上的渲染交互效果;X5web内核下该如何有效的管理cookie;X5webview下的ndk基本配置说明;X5webview常见问题等等。

Android-X5WebView封装(含Cookie管理、进度监听、适配8.1系统等策略)详情请点击!

文章使用到的官方资料:

腾讯浏览服务

腾讯浏览服务技术指南

腾讯浏览服务接入技术文档

腾讯浏览服务SDK、API、Demo下载

1:什么是腾讯X5Web?

移动互联网时代,Web成为各超级App的通用基础技术。Web浏览不再局限于传统浏览器,相反已经进入绝大部分App的各类应用场景。越来越多的App基于Hybrid模式开发和部署业务。腾讯浏览服务(TBS,Tencent Browsing Service)整合腾讯底层浏览技术和腾讯平台资源及能力,提供整体浏览服务解决方案。腾讯浏览服务面向应用开发商和广大开发者,提供浏览增强,内容框架,广告体系,H5游戏分发,大数据等服务,能够帮助应用开发商大幅改善应用体验,有效提升开发,运营,商业化的效率。传统系统内核(Webview)存在适配成本高、不安全、不稳定、耗流量、速度慢、视频播放差、文件能力差等问题,这是移动应用开发商在进行Hybrid App开发时普遍面临的难题。腾讯浏览服务基于腾讯X5内核解决方案(包括内核和云服务),能够有效解决传统移动web技术面临的普遍问题,同时能极大扩展应用(Hybrid App)内浏览场景的服务能力。

2:腾讯X5Web的优点:

img_b52ab68f085674c1e0476f7926e2fb58.png
腾讯X5宣传优点

3:开始集成

A:集成前准备

个人建议还是首先运行腾讯下腾讯的X5Demo,不仅对X5有个初步印象,而且方便对项目中的功能进行筛选使用。下载demo,导入AS(笔者的Android studio 是3.0版本)导入后,就报了第一个错误...


img_675006ff4cd0747111c03198844e58db.png
官方Demo的错误
img_234cb932f6a1bce2e3cffd56a0c88f6d.png
官方项目导入结构图

细心的老司机可能一眼就发现了问题,这里就不多说问题直接给大家提供解决办法:

img_443ad9e6746c3c23e9aaa971a06eff5d.png
解决办法

在项目的 build.gradle里面(绿色区域)按照笔者为大家截图(也就是红色区域)的位置,在对应区域添加红色段落内代码即可。(代码内容如下)

buildscript {

repositories{ jcenter() }

dependencies{ classpath "com.android.tools.build:gradle:2.3.3" }

}

repositories {

maven {url 'http://repo1.maven.org/maven2' }

}

按照上面步骤,等待项目构建完毕以后,Demo理论上就可以正常运行了。(如果上述方法还是不行那只能说脸黑自行解决咯)项目成功运行后的Demo效果如下:

img_59bbc4743836e260b38a5585b3a901a7.png
X5运行图

B:基本配置

    I:权限配置


img_1b13480bbf017e9f14fe0320075675a0.png
权限配置

    II:jar包配置


img_71a5f4540f2bb17f14f5ee74b783870c.png
jar包jniLibs配置

III:项目 build.gradle配置:


img_4bed86f029b49496cc3e7aea2a1cae23.png
配置ndk

由于X5暂时不提供64位so文件,为保证64位手机能正常加载x5内核,可以在项目依赖中去配置ndk。为什么要配置ndk以及如何配置,详细请参考 X5Web配置ndk的官方详细说明

C:开始使用

首先:将Android系统源码和XML里的系统包和类替换为腾讯X5WebSDK里的包和类,

img_9933af69f319ddc18058c6be161d0426.png
替换资源

举个例子就是不要使用android系统的webview,而是使用腾讯的webview。当然,具体的替换规则可以参考文章前面的链接,里面有详细的使用说明。

其次:初始化设置

img_0709085dfbebb573316c6fb684f5c18e.png
Application的配置

在自定义application里面进行x5内核初始化接口,别忘记了在清单文件里面要配置自定义application。

接着:关于cookie的管理和使用

官方文档告知我们:com.tencent.smtt.sdk.CookieManager和com.tencent.smtt.sdk.CookieSyncManager的相关接口的调用,需要在接入SDK后,放到创建X5的WebView之后(也就是X5内核加载完成)进行;否则,cookie的相关操作只能影响系统内核。

图下给大家提供了一种cookie在X5的使用策略(也是笔者的另一篇文章)需要了解的可以移步下面链接。

Cookie的有效管理

然后:X5Web兼容视频播放的使用

如果有视频播放的需求,需要在享受页面视频的完整播放体验需要在页面的Activity(配置文件)需要声明android:configChanges="orientation|screenSize|keyboardHidden";

网页中的视频进入屏幕的时候,可能出现闪烁的情况,需要如下设置:Activity在onCreate时需要设置:getWindow().setFormat(PixelFormat.TRANSLUCENT);(这个对宿主没什么影响,建议声明)

值得一提的是,以下接口禁止(直接或反射)调用,避免视频画面无法显示:

webview.setLayerType() ; webview.setDrawingCacheEnabled(true);

最后:建议包装x5webview

如何包装?也就是自定义x5webview,建议:可以先花一点时间看一下官方的Demo,然后根据自身业务集成使用。当然,笔者自己也封装了一些最基本的功能 X5WebView的封装 大家可以参考下(写得不好的话请见谅)

常见问题:

问题一:

如何拿到X5webview的加载进度,比如在Html加载前,客户端这边需要展示一张图片,当加载完毕以后这张图片就隐藏,然后显示需要展示的html内容?

解决:在WebChromeClient这个类里面(import com.tencent.smtt.sdk.WebChromeClient ; )有一个监听进度的方法,如下图


img_49563b7c54dcadd96398ad0a1fc08b89.png
监听进度

然后通过 setWebChromeClient( webChromeClient );即可完成进度的监听。

问题二:如何去除滚动条?

解决:通过X5webview的 IX5WebViewExtension类对象,可以帮我们去除滚动条,参考代码如下

img_19a5defb85308da0538acfaa0077b57d.png
去除滚动条

问题三:如何去除广告?

使用的小伙伴反馈说H5上面有广告,这里给两种思路去解决,如果有更好的方法请直接在评论区提出:

1:可以使用Https

2:对加载的url进行简单的判断(可以跟后台讨论设置规则)允许的域名进行放行 其他就拦截,不允许的则拦截

点击这里了解更多的X5问题大杂烩 X5问题大汇总

腾讯X5的基本介绍和使用就到这里,当然可能有很多问题还没有发现,笔者在项目中如果有遇到任何问题会及时更新文章,各位看官有任何问题请直接联系笔者或者评论区下提问。当然也希望各位老铁多多点赞支持,如果写的不好还请大家多多包涵。

说完了基本使用,我们再谈封装,关于X5WebView的基本封装,大家可以参考我的另一篇文章 X5WebView封装 里面含源码及使用说明,望大家多多支持。

如果这篇文章对你有帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果,谢谢。

相关文章
|
3月前
|
前端开发 安全 JavaScript
构建高效Web应用的五个关键步骤
【9月更文挑战第21天】本文将引导读者通过五个核心步骤来构建一个高效的Web应用。我们将从选择合适的技术栈开始,到实现响应式设计、优化性能、保证安全性,最后确保可维护性和扩展性。每个步骤都配备了具体的代码示例,帮助理解如何在实践中应用这些概念。
|
4月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
286 1
|
2月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
99 1
|
2月前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
71 2
|
2月前
|
SQL 前端开发 测试技术
进行Web应用的设计需要遵循一定的步骤和原则
【10月更文挑战第3天】进行Web应用的设计需要遵循一定的步骤和原则
24 3
|
3月前
|
Dart 开发工具 Android开发
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
在 Android 系统上搭建 Flutter 环境的具体步骤是什么?
|
4月前
|
存储 消息中间件 前端开发
Web2py框架下的神秘力量:如何轻松集成第三方API,让你的应用不再孤单!
【8月更文挑战第31天】在开发现代Web应用时,常需集成第三方服务如支付网关、数据存储等。本文将指导你使用Web2py框架无缝接入第三方API。通过实例演示从注册获取API密钥、创建控制器、发送HTTP请求到处理响应的全过程。利用`requests`库与Web2py的内置功能,轻松实现API交互。文章详细介绍了如何编写RESTful控制器,处理API请求及响应,确保数据安全传输。通过本教程,你将学会如何高效整合第三方服务,拓展应用功能。欢迎留言交流心得与建议。
50 1
|
4月前
|
Android开发 iOS开发
[ionic]解决运行Android、IOS出现Could not find the web assets directory
[ionic]解决运行Android、IOS出现Could not find the web assets directory
38 1
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
153 0
|
4月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
264 0
下一篇
无影云桌面