1***@qq.com
1***@qq.com
  • 发布:2018-08-11 21:51
  • 更新:2024-07-04 16:12
  • 阅读:7832

plus.runtime.install 安装失败,并且失败回调的参数 error一直为null

分类:HTML5+

plus.runtime.install 的path参数的值为_downloads/apk/10.apk
不知道什么原因,失败回调的参数 error一直为null

关键代码如下:


      var path = '_downloads/apk/';  
      var fileName = String(res.data.url).split('/');  //值为:/apk/10.apk  
      fileName = fileName[fileName.length-1];  

//检查安装包是否已存在  
            plus.io.resolveLocalFileSystemURL(path+fileName, function(entry) {  
                console.log('资源已下载:'+path+fileName)  
                installApk(path+fileName); // 更新应用资源  
            }, function(e) {  
                console.log('从服务端下载资源')  
               var down = plus.downloader.createDownload(api+res.data.url,{method:"GET",filename:path+fileName},  
                function(download,status){  
                    if (status == 200) {  
                        installApk(path+fileName);// 更新应用资源  
                    }  
                });  

                down.start();  
            });  

// 更新应用资源  
var installApk = function(path){  
    mui.confirm('是否立即安装?','检测到新版本',['立即安装','稍后安装'],function(e){  
        if(e.index == 0){  
            loading.show();  
            plus.runtime.install(path,{},function(){  
                loading.hide();  
                console.log("安装文件成功!");  
                plus.nativeUI.alert("应用更新完成!",function(){  
                    plus.runtime.restart();  
                });  

            },function(e){  
                loading.hide();  
                console.log(JSON.stringify(e));//这里!e一直为null,path路径为_downloads/apk/10.apk  
                mui.toast('安装失败');  
            });  
        }  
    })  
}
2018-08-11 21:51 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

出错原因已找到;

通过仔细阅读文档 http://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.install

发现对path参数部分说明如下:
仅支持本地地址,调用此方法前需把安装包从网络地址或其他位置放置到运行时环境可以访问的本地目录

所以出错原因是_downloads/apk/目录不是运行时环境可访问的本地目录,只需将原来的_downloads/apk/ 修改为_doc/update/即可。

  • 8***@qq.com

    filename: '_doc/update/' + new Date().getTime() + '/' 改成这样 还是不好使

    2021-01-28 17:22

5***@qq.com

5***@qq.com

IOS中, start(); 这个方法报空对象, 不知道是什么原因

lanxue

lanxue

这个问题 你后来解决了吗

pnpl

pnpl

如果是离打包,记得添加sdk
install-apk-release.aar

i***@126.com

i***@126.com

似乎
plus.runtime.install(path,{ force: true },function(){
...
就可以了
path ,是下载的 path,不用改

Code0704

Code0704 - 小前端一名

您好 我也遇到了您的这种问题 我按照你的解决方式还是没得到解决 能否帮我看一下

要回复问题请先登录注册