切克闹
切克闹
  • 发布:2015-09-22 16:58
  • 更新:2020-07-24 15:16
  • 阅读:3360

如何给制作的app加一个版本更新的功能?

分类:MUI

想让这个应用看起来更像原生的应用。所以想加一个版本更新功能。
mui的例子是他要传一个appid,imei,version,那他是在后台判断那个字段决定是否更新呢?
可否发个后台代码?
我试着拼接了这个请求,http://www.dcloud.io/check/update%EF%BC%9Fappid=%22HBuilder%22&version=%226.4.0%22&imei=%22355994057105988%22
但是并没有像例子中那样返回status的信息不知怎么回事?

 //检查更新  
        document.getElementById("update").addEventListener('tap', function() {  
            var server = "http://www.dcloud.io/check/update"; //获取升级描述文件服务器地址  
            console.log(plus.runtime.appid);  
            console.log(plus.runtime.version);  
            console.log(plus.device.imei);  
            mui.getJSON(server, {  
                "appid": plus.runtime.appid,  
                "version": plus.runtime.version,  
                "imei": plus.device.imei  
            }, function(data) {  
                if (data.status) {  
                    plus.ui.confirm(data.note, function(i) {  
                        if (0 == i) {  
                            plus.runtime.openURL(data.url);  
                        }  
                    }, data.title, ["立即更新", "取  消"]);  
                } else {  
                    mui.toast('Hello MUI 已是最新版本~')  
                }  
            });  
        });
2015-09-22 16:58 负责人:无 分享
已邀请:
chender

chender - 与人为善

要到自己的服务器上去检查更新吧

DCloud_UNI_CHB

DCloud_UNI_CHB

因为我们的示例服务器仅处理了特定ID的应用,检测更新的服务器代码示例(php版本)如下:

<?php  
$appid = $_GET['appid'];  
$version = $_GET['version'];  
if (isset($appid) && isset($version)) {  
    //仅负责特定ID的APP升级  
    if($appid=="H5291D269"){  
        $content = file_get_contents('update.json');  
        $info = json_decode($content);  
        if($version!==$info->{'version'}){  
            exit($content);  
        }  
    }  
}   
exit('{"status":0}');  
?>

其中,update.json中保存的是最新的版本信息,内容如下:

{  
    "status":1,  
    "version": "2.2.0",  
    "title": "Hello MUI版本更新",  
    "note": "chart模板增加饼状图示例;\n优化二级列表及折叠面板的底线显示;",  
    "url": "http://www.dcloud.io/hellomui/HelloMUI.apk"  
}

另外,更推荐大家使用uniCloud发布一个检查更新的云函数,详情参考:https://ext.dcloud.net.cn/plugin?id=2226

  • 切克闹 (作者)

    您好,看了你们的后台代码,仅仅是比较了version。

    但是示例中向服务器传了version,appid,imei,我还以为有什么特定的意义?

    示例中是直接 plus.runtime.openURL(data.url);,那他是怎么在服务器端判断是什么操作系统,然后返回不同的url(android或ios)呢?

    把apk直接发到服务器的文件夹中,在手机端打开那个地址www.XXXX.com/XXX/xx.apk,是通过

    手机浏览器下载的吗?

    2015-09-22 22:55

  • DCloud_UNI_CHB

    我发给你的只是最简单的示例,其它逻辑需要自己实现;比如:根据UA识别操作系统。

    2015-09-22 23:25

好冷

好冷 - 诚接外包,QQ:23380891

有用,收藏了

时光可见

时光可见

这个是更新安卓版本的。。。但是IOS呢?

  • [已删除]

    imei就是版本,一样的回执更新数据。只是Andriod是直接下载apk,iOS是plus.runtime.openURL()跳转到AppStore更新。

    2017-03-08 22:46

追梦使者

追梦使者

不错

1***@qq.com

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