希望 uni-app原生插件 支持在 Application onCreate 时初始化
在接入一些第三方sdk的时候, sdk对初始化的时序有要求, 会执行一些动态类创建和加载等等的过程.
在使用云打包的时候这些sdk就无法正常初始化了, 官方提供的插件注册方法(hookClass/plugins)也不行.
通过本地打包, 写个Application类继承自官方的入口, sdk初始化逻辑写在onCreate里面, 可以解决问题.
但是我又想接入这些有冲突的sdk, 又想享受云打包的插件生态, (这个sdk也可能被封装成云打包插件).
所以请问能不能这样:
插件提供一个类名, 打包的时候把这个类的实例调用插入到 Application onCreate 里面?
5 个回复
lipingx (作者) - 插件开发者
顶一下, 希望官方回复一下.
DCloud_Android_ST
android吗 用AppHookProxy的onCreate触发初始化也不行?
lipingx (作者)
是的, android端
官方提供的初始化方法都使用了, 都不行.
2019-12-23 19:02
DCloud_Android_ST
回复 lipingx: onCreate触发算是比较早的。感觉你说的可能性不大 。你有过云打包吗 appid发下
2019-12-23 19:05
lipingx (作者)
回复 DCloud_Android_ST: 目前还没有云打包, 是还在开发中, 就是在本地开发云插件的时候发现初始化不了. 这样可以加个QQ吗1628006002, 我把项目打zip包给你看一下.
2019-12-23 19:18
8***@qq.com
回复 DCloud_Android_ST: 我也遇到了这个问题,求给个解决方案
2020-04-12 08:17
5***@qq.com
同样问题,求大神解决,用provider初始化也不行
2020-04-15 21:31
5***@qq.com
用了com.liulishuo.filedownloader这个包就初始化不了 api 'com.liulishuo.filedownloader:library:1.4.1'
2020-04-15 21:42
DCloud_Android_ST
回复 5***@qq.com: 目前只提供AppHookProxy的onCreate。必须要在Application onCreate是那个第三方SDK?
2020-04-16 11:04
5***@qq.com
回复 DCloud_Android_ST: 是的,这个包中的service在另一个进程中跑。可能构筑了两个application,我换了一个高版本1.64以后可以在钩子里初始化了,还有个疑问是不是uni的引用有冲突呢?uni框架中有没有引用过com.liulishuo.filedownloader这个包
2020-04-16 14:05
DCloud_Android_ST
回复 5***@qq.com: 官方没有集成com.liulishuo.filedownloader这个包
2020-04-16 14:07
5***@qq.com
回复 DCloud_Android_ST:好的, 谢谢解答哦
2020-04-16 17:47
zhangtao5298
回复 lipingx: 你这个解决了吗
2020-05-11 10:39
zhangtao5298
你好 我也遇到这个问题 请问有解决方法吗
2020-05-11 10:40
lipingx (作者)
回复 zhangtao5298: 没有解决
2020-05-17 11:23
lipingx (作者)
回复 DCloud_Android_ST: 大佬, 这个需求可以优化一下吗?
2020-08-21 14:37
DCloud_Android_ST
可以使用UniAppHookProxy的子进程回调onSubProcessCreate 初始化三方SDK以满足需要在另外一个进程操作的业务逻辑。但当前子进程无uniapp原生插件环境不可注册插件。不过该逻辑只有在2.9.8+的SDK才生效
2020-12-11 10:41
1***@qq.com
请问这个问你你们解决了吗,我也遇到了这个问题
lipingx (作者)
没有解决
2020-08-21 14:36
xiaojun617
我的app需要分享文件到企业微信,企业微信提供了sdk,如下链接是教程,我在UniAppHookProxy的onCreate中无法初始化sdk,请问如何解决?
https://work.weixin.qq.com/api/doc/90000/90136/91196
xiaojun617
我把我新建的Module下的build.gradle文件内容改成和官方插件uniplugin_module下的build.gradle内容一致,就初始化成功了
2020-12-11 09:24
DCloud_Android_ST
回复 xiaojun617: onCreate只会在主进程初始化。子进程不会触发 所以可以在UniAppHookProxy 的onSubProcessCreate子进程初始化类似的SDK
2020-12-28 11:03
寂正
我也遇到了同样的问题
DCloud_Android_ST
onCreate只会在主进程初始化。子进程不会触发 所以可以在UniAppHookProxy 的onSubProcessCreate子进程初始化类似的SDK。
2020-12-28 11:02
寂正
回复 DCloud_Android_ST:
public class OfficeOnline_AppProxy implements UniAppHookProxy {
@Override
public void onSubProcessCreate(Application application) {
System.out.println("-----------------3----------------------" + application);
QbSdk.preinstallStaticTbs(application);
}
}
onCreate方法执行但是报错
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
onSubProcessCreate根本不执行
2020-12-28 14:07
DCloud_Android_ST
回复 寂正: onSubProcessCreate是子进程触发。你说不触发我这测试可以。看log需要去子进程看才可以
2020-12-28 14:42