稻草人wei
稻草人wei
  • 发布:2020-08-07 15:16
  • 更新:2020-08-07 15:16
  • 阅读:855

【报Bug】application生命周期问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.15.5 (19F101)

HBuilderX类型: 正式

HBuilderX版本号: 2.8.4

手机系统: Android

手机系统版本号: Android 8.0

手机厂商: 华为

手机机型: 华为P9

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

必现,详细问题步骤见https://ask.dcloud.net.cn/question/103403

预期结果:

初始化成功

实际结果:

初始化失败

bug描述:

AppHookProxy 中的onCreate方法回调不及时,导致接入的云信sdk没有初始化成功。
翻看源码如下:
if (!SDK.isUniMPSDK() && this.d(var1) || SDK.isUniMPSDK() && this.f(var1)) {
AppRuntime.initX5(var1);
AppRuntime.initWeex(var1);//初始化插件的地方
}
问题点在this.d(var1)这个方法,方法如下:
public boolean d(Context var1) {
return var1.getPackageName().equals(RuningAcitvityUtil.getAppName(var1));
}
由于应用刚启动的时候框架存在多进程的情况,会初始化多次,但是由于这个方法的判断逻辑预先初始化的应用名称会多出进程名称,导致初次初始化的时候此判断逻辑返回false,导致sdk初始化失败。
例:packageName:com.test.app
appName: com.test.app:core

由于以上出现的问题会导致云信sdk初始化延后,导致初始化失败。

2020-08-07 15:16 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复