7***@qq.com
7***@qq.com
  • 发布:2018-09-08 12:39
  • 更新:2021-07-10 17:31
  • 阅读:6195

分享一个wap2app升级检测-安卓/苹果设备【详细】

分类:wap2app

这是一个比较详细的教程
客户端的检测代码+服务端的php代码就可以检测了!

需要注意的是,检测更新在真机调试的情况下是没有效果的,一定要发行原生安装包 安装在手机测试才有效果

1.客户端app.js添加检测代码

  /************升级检测代码开始********** */  
        var ua = navigator.userAgent;  
        //Html5Plus环境,但不是流应用环境  
        if(ua.indexOf('Html5Plus') > -1 && ua.indexOf('StreamApp') == -1) {  
            var server = "http://****.com/c***.php"; //检查更新地址  
            var req = { //升级检测数据  
                "appid": plus.runtime.appid,  
                "version": plus.runtime.version,  
                "imei": plus.device.imei,  
                "plus":plus.os.name  
            };  
            //注释部分是wap2app封装的post请求。示例使用get请求  
            wap2app.ajax.get(server, req, function(rsp) {  
                if(rsp && rsp.status) {  
                    //需要更新,提示用户  
                    plus.nativeUI.confirm(rsp.note, function(event) {  
                        if(0 == event.index) { //用户点击了“立即更新”按钮  
                            plus.runtime.openURL(rsp.url);  
                        }  
                    }, rsp.title, ["立即更新", "取  消"]);  
                }  
            });  
        }  
        /************升级检测代码结束********** */

2.可能刚接触wap2app封装的人不知道把检测代码添加到app.js里的哪个位置,那我就把我已经添加好检测代码的app.js全部代码发出来吧

App({  
    options: {  
        debug: false  
    },  
    /**  
     * 当wap2app初始化完成时,会触发 onLaunch  
     */  
    onLaunch: function() {  
        console.log('launch');  
        /************升级检测代码开始********** */  
        var ua = navigator.userAgent;  
        //Html5Plus环境,但不是流应用环境  
        if(ua.indexOf('Html5Plus') > -1 && ua.indexOf('StreamApp') == -1) {  
            var server = "http://****.com/c***.php"; //检查更新地址  
            var req = { //升级检测数据  
                "appid": plus.runtime.appid,  
                "version": plus.runtime.version,  
                "imei": plus.device.imei,  
                "plus":plus.os.name  
            };  
            //注释部分是wap2app封装的post请求。示例使用get请求  
            wap2app.ajax.get(server, req, function(rsp) {  
                if(rsp && rsp.status) {  
                    //需要更新,提示用户  
                    plus.nativeUI.confirm(rsp.note, function(event) {  
                        if(0 == event.index) { //用户点击了“立即更新”按钮  
                            plus.runtime.openURL(rsp.url);  
                        }  
                    }, rsp.title, ["立即更新", "取  消"]);  
                }  
            });  
        }  
        /************升级检测代码结束********** */  
    },  
    /**  
     * 当wap2app启动,或从后台进入前台显示,会触发 onShow  
     */  
    onShow: function() {  
        console.log('show');  
    },  
    /**  
     * 当wap2app从前台进入后台,会触发 onHide  
     */  
    onHide: function() {  
        console.log('hide');  
    }  
});  
Page('__W2A__www.xxxx.com', { //首页扩展配置  
    onShow: function() {  

    },  
    onClose: function() {  

    }  
});

3.服务端那边是一个PHP文件
官方文档那边有验证客户端appid的,被我去掉了

代码如下:

<?php  
error_reporting(E_ALL^E_NOTICE^E_WARNING);  
header('Content-Type:text/html;charset=utf-8');  
function down(){  
$appid = $_GET['appid'];  
$version = $_GET['version'];  
$os= $_GET['plus'];   
$imei= $_GET['imei'];   
$rsp = array('status' => 0);  
if (isset($appid) && isset($version)) {  
if($version !== "1.1"){ //最新版本号  
$rsp['status'] = 1;  
$rsp['title'] = "Hello 版本更新";  
$rsp['note'] = "本次更新了,此为自定义内容";  
if($os == 'Android'){  
$rsp['url'] = "http://***.com/***.apk"; //安卓安装包地址  
}else{  
$rsp['url'] = "https://itunes.apple.com/cn/app/xxx"; //苹果点击更新后跳转的地址,可以是自己的网页的,也可以是苹果商店的  
}}}exit(json_encode($rsp));}  
$data=down($getdh);    
echo $data;

4.服务端那边php文件里的【最新版本号】要大于之前安装包的版本号才会检测更新

  1. 要改的地方也就客户端app.js里的检测地址、服务器端PHP的版本号、安卓下载地址,苹果点击更新按钮后跳转的地址、更新弹窗提示文字。

4 关注 分享
SuniceTop 4***@qq.com UTict Aa小艾

要回复文章请先登录注册

Camio1945

Camio1945

回复 灰太狼的诱惑 :
遇到相同的情况了,调用 wap2app.ajax.get 返回的都是 false 。我这边的原因是:写的URL是本机的接口(http://localhost/***),安装到手机上后,这个接口是不通的,换成外网URL就可以了。
2021-07-10 17:31
灰太狼的诱惑

灰太狼的诱惑

为什么我拿你这个来安卓却没反应,返回值是false
2021-06-04 18:43
朱亮

朱亮

非常不错。
2021-03-09 21:14
1***@qq.com

1***@qq.com

厉害
2021-03-08 14:23
Escher1108

Escher1108

赞!
2020-04-02 20:36
5***@qq.com

5***@qq.com

留眼后用
2020-03-09 13:41
1***@qq.com

1***@qq.com

感谢分享
2019-09-08 20:44
a***@0830dj.com

a***@0830dj.com

的确不错 但是我按装你的操作依然不行 包括官方 所以相关的 都没一个可以出来的
2019-08-29 03:30
4***@qq.com

4***@qq.com

前二天用electron做了一个客户端版的更新,今天再看这个就感觉简单多了
2019-03-12 00:20
1***@qq.com

1***@qq.com

为什么我的app始终调不出版本更新的哪??
2019-03-11 23:55