环境:HBuilderX 5.24.2026081301 + 官方离线 SDK 5.24(Android-SDK@5.24.82669_20260813),uni-app vue3 工程,Android 离线打包。
现象:离线打包的 AndroidManifest.xml 若加 <meta-data android:name="DCLOUD_UNIPUSH" android:value="true"/>,运行时会注入 window.__isUniPush__ = true(反编译 lib.5plus.base,io.dcloud.p.i1 按该 meta-data 拼接注入),随后 vue3 框架把 plus.push.* 桥接到 weex 模块「UniPush」。但该 weex 模块在离线 SDK 5.24 的全部 aar/dex 中均未注册,官方标准基座(launcher/base/android_base.apk)里同样没有注册,导致 plus.push 全部 API(getClientInfo、addEventListener、getPushClientId 等)无回调/报错。
对照:云打包应用清单里搜不到 DCLOUD_UNIPUSH meta-data,__isUniPush__ 不置位,标准 5+ push 通道工作正常。
三个问题:
- vue3 运行时下 weex 模块「UniPush」的注册来源是什么?是否仅存在于云打包生成的定制基座中?
- 离线打包 + uni-push 2.0 的官方推荐集成方式,是否就是保持 5+ 标准通道、不加 DCLOUD_UNIPUSH meta-data?
- 后续 HBuilderX / 离线 SDK 是否有计划把 weex「UniPush」模块补入离线包或标准基座?
已验证的可用方案(不加 DCLOUD_UNIPUSH):manifest.json 启用 uni-push 2.0(等价 sdkConfigs.push.unipush)+ dcloud_properties.xml 的 Push feature 带 unipush module 子节点 + 个推 SDK 走 Maven(gtsdk 3.3.15.0 / gtc 3.3.3.0)+ 官方文档唤端 intent-filter 定式(scheme=unipush / host=io.dcloud.unipush / path=/)。CID 获取、在线消息监听、通知点击唤端均真机验证通过。
0 个回复