7***@qq.com
7***@qq.com
  • 发布:2018-09-08 12:39
  • 更新:2024-06-27 23:03
  • 阅读:6632

分享一个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小艾

要回复文章请先登录注册

4***@qq.com

4***@qq.com

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

1***@qq.com

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

[已删除]

回复 淘券券 :
可以内更新的
2019-02-10 01:12
[已删除]

[已删除]

回复 4***@qq.com :
放服务器你想放的地方都可以,前端可以请求就行
2019-02-10 01:11
4***@qq.com

4***@qq.com

你好,请问php文件放到服务端的哪个地方呢,是根目录还是什么?
2019-02-09 22:58
回梦無痕

回梦無痕

回复 淘券券 :
安卓上在APP内下载好apk,然后调用安装,就会进入安装页面了。ios上,整包更新只能去AppStore或者企业签名去网页上更新了。
2018-11-22 15:51
淘券券

淘券券

回复 回梦無痕 :
app内更新整包升级呢?M端打包的app
2018-11-22 15:27
回梦無痕

回梦無痕

回复 淘券券 :
办法肯定是有的,就是资源升级(wgt)。
2018-11-22 14:54
淘券券

淘券券

回复 SuniceTop :
有app内更新的办法么,不跳转浏览器下载
2018-11-22 14:12
SuniceTop

SuniceTop

先赞~再试~
2018-09-08 12:56