HarmonyOS鸿蒙Next中腾讯 TBS X5的SDK(版本:44226)是否支持WebView内核鸿蒙化?
HarmonyOS鸿蒙Next中腾讯 TBS X5的SDK(版本:44226)是否支持WebView内核鸿蒙化? 【问题描述】:我们项目有用到腾讯 TBS X5的SDK,版本:44226,用途是 WebView 内核,是否支持鸿蒙化呢?
【版本信息】:44226
尊敬的开发者,您好,
关于您反馈的问题,建议您直接联系三方SDK开发者,通过其官方渠道进行沟通。
更多关于HarmonyOS鸿蒙Next中腾讯 TBS X5的SDK(版本:44226)是否支持WebView内核鸿蒙化?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
背景知识:
楼主使用腾讯 TBS X5的SDK,底层都是WebView修改的。同样HarmonyOS中也时有webview控件的,他就是web控件 可以结合文档来处理自己需要的功能。如:
1、JS调用ArkUI方法
2、拦截a标签事件
3、读取或者写入UA信息
问题解决:
class JsBridge {
// 声明可供H5调用的方法清单
methods = ['getDeviceInfo'];
getDeviceInfo(): string {
return JSON.stringify({ os: 'HarmonyOS', version: '5.0' });
}
}
controller: webview.WebviewController = new webview.WebviewController()
common.UIAbilityContext = this.getUIContext().getHostContext() as common.UIAbilityContext
Web({
controller: this.controller,
src: "http://192.168.20.198:8000/ua.html"//$rawfile("test.html")
}).cacheMode(CacheMode.Online)
.javaScriptAccess(true)
.javaScriptProxy({
//1、注册一个 client代理给到 js的windows,让js可以调用到定义的方法
object:this.jsBridge,
name:"client",
methodList:this.jsBridge.methods,
controller:this.controller
})
.onUrlLoadIntercept((event)=>{
//2、 a 标签拦截
const url = event?.data
return false
})
.onControllerAttached(()=>{
//3、获取UA
const UAText = this.controller.getUserAgent()
// 写入UA
this.controller.setCustomUserAgent(UAText+"/xxx")
})
腾讯 TBS X5 44226 是 Android WebView 内核体系,原生 HarmonyOS NEXT HAP 不能直接鸿蒙化使用。鸿蒙原生侧建议改用 ArkWeb Web 组件,实现页面加载、JSBridge、Cookie、文件选择、下载、权限等能力;除非腾讯单独发布 HarmonyOS 适配 SDK。
只有SDK发布的包,不支持,内核架构不一样。
有x5源码另说。
如果你们说的是:
腾讯 TBS X5 WebView SDK
版本 44226
并且目标是:
HarmonyOS NEXT / 鸿蒙化
那结论其实比较明确:
目前基本不支持直接鸿蒙化。
原因不是:
“版本太老”。
而是:
TBS X5 本质是 Android WebView 内核体系。
它依赖:
- Android Framework
- Android Context
- Activity
- AOSP WebView机制
- APK生态
- Dalvik/ART相关能力
而:
HarmonyOS NEXT(纯血鸿蒙)已经:
不再兼容 AOSP
只能运行:
原生 HAP
华为官方也明确提到:
HarmonyOS NEXT 不再包含 Android AOSP 兼容层,需要应用进行原生鸿蒙适配。
所以:
Android版 X5 SDK
无法直接在:
HarmonyOS NEXT
运行。
——————————
你们现在需要先区分:
情况1:HarmonyOS 4.x(兼容安卓)
如果你们是:
HarmonyOS 4.x
例如:
- 卓易通
- Android兼容模式
- 兼容AOSP设备
那:
X5 44226 大概率还能继续跑
因为本质上:
还是 Android 环境。
很多 Android App 在 HarmonyOS 4 里:
X5 是能正常工作的。
——————————
情况2:HarmonyOS NEXT / 原生鸿蒙
这个才是关键。
如果你们现在要做:
鸿蒙原生应用(ArkTS/HAP)
那么:
X5 目前没有官方 HarmonyOS NEXT 原生 SDK。
至少目前公开生态里没有。
也就是说:
你不能:
implementation 'com.tencent.tbs:x5'
然后直接在 ArkTS 里用。
因为:
- 没有 ArkTS API
- 没有 OHOS Native 封装
- 没有 HAP版 runtime
- 没有 NEXT 适配
——————————
你们现在真正应该考虑的是:
“为什么必须用 X5?”
很多 Android 项目依赖 X5 的原因:
兼容低版本 Android WebView
——————————
统一 Chromium 内核
——————————
视频播放兼容
——————————
JSBridge
——————————
H5性能优化
——————————
但:
HarmonyOS NEXT 里:
系统已经是:
ArkWeb
体系。
很多以前 X5 解决的问题:
现在已经不存在了。
——————————
目前鸿蒙原生里:
真正推荐的是:
ArkWeb / Web组件
官方路线。
因为:
HarmonyOS NEXT 整个 Web 体系就是:
ArkWeb。
——————————
如果你们项目:
只是普通 H5 容器:
例如:
- Vue
- React
- uniapp
- h5业务页
实际上:
ArkWeb 已经足够替代 X5。
——————————
但如果你们依赖 X5 的高级能力:
例如:
- 文件预览
- TBS Reader
- office预览
- X5播放器
- X5缓存体系
- 特殊JSBridge
那就需要:
重新做鸿蒙原生适配。
不能直接迁移。
——————————
还有一个现实问题:
X5 的更新其实已经明显偏 Android 生态。
腾讯目前:
- 微信
- 腾讯视频
在鸿蒙 NEXT 上,
更多也是:
重新适配原生鸿蒙
而不是:
“直接移植 Android X5”。
这点其实已经能说明方向了。
——————————
所以你们现在的正确路线应该是:
如果目标:
HarmonyOS NEXT 原生化
建议:
放弃直接接入 Android X5 SDK
——————————
评估:
ArkWeb 能否满足需求
——————————
把:
- JSBridge
- 文件下载
- H5交互
- 离线缓存
迁移到 ArkWeb 体系
——————————
特殊能力单独重构
例如:
- Office
- 视频播放器
——————————
最后给你一个很现实的结论:
腾讯 X5 ≠ HarmonyOS NEXT WebView方案
目前:
HarmonyOS NEXT 官方路线是 ArkWeb
不是 X5。
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
该SDK(版本44226)是为Android平台设计的,不支持鸿蒙Next的纯鸿蒙化WebView内核。鸿蒙Next采用ArkWeb引擎,需使用鸿蒙原生Web组件,TBS X5未完成鸿蒙适配。
腾讯TBS X5 SDK (版本44226) 目前不支持 HarmonyOS NEXT(纯鸿蒙)环境。
该 SDK 基于 Android 原生 WebView 内核构建,而 HarmonyOS NEXT 不再兼容 Android 框架,无法直接运行 TBS。建议使用鸿蒙原生 Web 组件替代。


