热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidTencentX5WebView集成详解

AndroidX5WebView详细集成步骤本文意在了解掌握并快速集成腾讯X5系统内核,更好的提高Android与H5在应用上的渲染交互效果;X5we

Android 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的优点:

腾讯X5宣传优点


3:开始集成

A:集成前准备

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

 

官方Demo的错误

官方项目导入结构图

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

解决办法

在项目的 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效果如下:

X5运行图

B:基本配置

    I:权限配置

 

权限配置

    II:jar包配置

 

jar包jniLibs配置

III:项目 build.gradle配置:

 

配置ndk

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

C:开始使用

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

替换资源

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

其次:初始化设置

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 ; )有一个监听进度的方法,如下图

 

监听进度

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

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

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

去除滚动条

问题三:如何去除广告?

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

1:可以使用Https

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

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

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

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

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

Ps:非商业转载,个人记录使用,如有侵权告知即删 :https://blog.csdn.net/sinat_35241409/article/details/79098724


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
author-avatar
平平您好
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有