7***@qq.com
7***@qq.com
  • 发布:2019-03-19 14:04
  • 更新:2019-04-20 17:42
  • 阅读:3009

ios离线打包之后,在线更新wgt文件,更新完版本号不变。

分类:HTML5+

ios离线打包之后,在线更新wgt文件,更新完版本号不变。然后就会继续下载安装,第二次安装会报安装文件失败[-1205]:wgt安装包中manifest.json文件的version要高于现有版本号。请问应该怎么解决呢?下面是更新代码,用的是官方给的

mui.plusReady(function(){
// 检查更新
plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo){
var appversion=wgtinfo.version;
appversiondata=plus.os.name+appversion;
capajax({
type:"get",
url:url
,
success:function(data){
if(data.Version){
if(data.Version>appversion){
// plus.nativeUI.showWaiting("发现新版本~正在下载更新,\n请耐心等待。更新内容:\n"+data.UpdateContent,{back:"none"})
downLoad(data,data.UpdateContent);
}else{
}
};
}
})
});

}  

})
//下载新版本
function downLoad(ver,UpdateContent){
if(ver.UpdateApk&&ver.UpdateApk.indexOf('apk')>0){
if(plus.os.name=='Android'){
var fileName="version."+ver.UpdateApk;
}else if(plus.os.name=='iOS'){
plus.runtime.openURL("xxx");
return;
}
}else{
if(plus.os.name=='Android'){
var fileName="version."+ver.Version+'.wgt';
}else if(plus.os.name=='iOS'){
var fileName="version.IOS."+ver.Version+'.wgt';
}
}
plus.nativeUI.showWaiting("发现新版本~正在下载更新,\n请耐心等待。更新内容:\n"+UpdateContent,{back:"none"})
plus.downloader.createDownload(url_+'/apk/'+fileName, {
filename: ""
}, function(d, status) {
plus.nativeUI.closeWaiting();
if(status == 200) {
alert(d.filename)
installWgt(d.filename); // 安装
} else {
mui.toast("下载安装包失败!",{type:"div"});
}
}).start();
}
function installWgt(path){
plus.nativeUI.showWaiting("安装更新包...",{back:"none"});
plus.runtime.install(path, {}, function() {
plus.nativeUI.showWaiting("应用资源更新完成!");
alert(path)
if(path.indexOf('wgt')>0){
plus.nativeUI.closeWaiting();
alert('重启')
plus.runtime.restart();
}else{
plus.runtime.quit();
}
}, function(e) {
plus.nativeUI.closeWaiting();
mui.alert("安装文件失败[" + e.code + "]:" + e.message, "提示", "确定", "", 'div');
});
}

非常感谢!!

2019-03-19 14:04 负责人:无 分享
已邀请:
DCloud_iOS_XHY

DCloud_iOS_XHY

离线集成时,使用wgt更新有bug,下次发布离线sdk会修复此问题;临时解决方法请加 DCloud原生开发者官方QQ群 256775471,联系我

  • devh5

    qq群不存在??!!

    2019-03-20 10:52

  • DCloud_iOS_XHY

    回复 devh5:群号没问题呀,你再申请一下试试看,注意是群,不是用户

    2019-03-20 11:50

7***@qq.com

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

问题如果解决,有偿,谢谢!

7***@qq.com

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

问题已解决!谢谢!DCloud_iOS_XHY

  • devh5

    怎么解决的?

    2019-03-20 10:55

  • 7***@qq.com (作者)

    回复 devh5:要么提交新的ipa审核,要么等下次发布的sdk就会修复了,然后重新上架一次

    2019-03-20 11:43

  • 7***@qq.com (作者)

    回复 devh5:不管哪种,都要上架,如果以后都还用wgt方式更新,就需要更新sdk然后重新提交一次。我可以私聊你解决办法,qq772567199

    2019-03-20 11:45

k***@126.com

k***@126.com

我也是这样,是什么问题?为什么不能公开?

  • DCloud_iOS_XHY

    看一下我最新回复的代码

    2019-04-20 17:42

  • 7***@qq.com (作者)

    见下楼,更新sdk并修改启动代码就行了。不是不公开,关键ios原生代码我也不太懂,不知道贴哪一段

    2019-05-18 15:09

DCloud_iOS_XHY

DCloud_iOS_XHY

请查看一下最新sdk中的代码,启动5+用户,关键代码

- (void)loadView  
{  
    [super loadView];  
    if(pContentVIew == nil)  
        pContentVIew = [[UIView alloc] initWithFrame:self.view.bounds];  
    [self.view addSubview: pContentVIew];  

    PDRCore *h5Engine = [PDRCore Instance];  
    [self setStatusBarStyle:h5Engine.settings.statusBarStyle];  
    _isFullScreen = [UIApplication sharedApplication].statusBarHidden;  
    if ( _isFullScreen != h5Engine.settings.fullScreen ) {  
        _isFullScreen = h5Engine.settings.fullScreen;  
        if ( [self  respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)] ) {  
            [self setNeedsStatusBarAppearanceUpdate];  
        } else {  
            [[UIApplication sharedApplication] setStatusBarHidden:_isFullScreen];  
        }  
    }  
    h5Engine.coreDeleagete = self;  
    h5Engine.persentViewController = self;  

    // 设置5+SDK运行的View  
    [[PDRCore Instance] setContainerView:pContentVIew];  

    // 传入参数可以在页面中通过plus.runtime.arguments参数获取  
    NSString* pArgus = @"id=plus.runtime.arguments";   
    // 启动该应用  
    pAppHandle = [[[PDRCore Instance] appManager] openAppWithAppid:@"HelloH5" withArgs:pArgus withDelegate:nil];  
}

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