使用uniapp开发的安卓应用,在做更新功能时,使用到了plus.runtime.install这个API,当安装下载下来的整包apk时,一调用这个API马上就出发安装成功的回调回调,但是其实只是启动了系统的安装界面,还没有安装。
而安装wgt时,是能正常监听到的。
这是一个bug吗?有什么方法能正常监听到apk的成功安装吗?
使用uniapp开发的安卓应用,在做更新功能时,使用到了plus.runtime.install这个API,当安装下载下来的整包apk时,一调用这个API马上就出发安装成功的回调回调,但是其实只是启动了系统的安装界面,还没有安装。
而安装wgt时,是能正常监听到的。
这是一个bug吗?有什么方法能正常监听到apk的成功安装吗?
BoredApe - 有问题就会有答案。
调用plus.runtime.install
只是调用系统启动安装程序处理指定的apk文件,并不是表示apk成功安装到手机上。如果需要监听是否安装成功可以使用下面的方法
var receiver;
var main = plus.android.runtimeMainActivity();//获取activity
receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver',{
onReceive : function(context,intent){//实现onReceiver回调函数
plus.android.importClass(intent);//通过intent实例引入intent类,方便以后的‘.’操作
console.log(intent.getAction());//获取action
main.unregisterReceiver(receiver);//取消监听
}});
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var Intent = plus.android.importClass('android.content.Intent');
var filter = new IntentFilter();
filter.addAction(Intent.ACTION_PACKAGE_ADDED);//监听apk安装
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);//监听apk卸载
filter.addDataScheme("package");
main.registerReceiver(receiver,filter);//注册监听
Analog - Analog
你好 我plus.runtime.install的时候报错{
"code": 10,
"message": "error in opening zip file"
}这是为什么呢
水泥钉
请问哈 plus.runtime.install安装没反应 下载链接是 _doc/uniapp_temp_1691397194430/download/16913900047629.apk 错误回调返回null 是为什么啊 网上那些权限兼容什么的都处理了
2023-08-07 16:39
1***@163.com
回复 7***@qq.com: 解决了没,我也碰到了
2023-09-22 10:39
1***@qq.com
回复 7***@qq.com: 我也是,我在本地的文件中找到了apk安装包,还是安装失败,失败回调的参数也是null
2024-02-02 17:11