编程大白话之-uniapp更新版本及关闭APP

我使用uniapp开发的APP暂时还没有上架,Android是将apk放在了服务上,将线上地址生成了二维码,IOS是将ipa(企业版)依托线上分发网站生成二维码,供内部使用。

不管是上架还是内部使用,开发APP后我们不可避免的要更新版本,我们暂不考虑热更新,直接强制更新,如果不同意,那么就关闭APP!嘿哈~!


捕获.PNG

用户确认时我们通过浏览器打开新版本的下载地址,进行下载。

 plus.runtime.openURL()

点击取消时就无情的将APP进行关闭。

plus.runtime.quit() // Android

IOS系统不支持这种关闭APP的方法,插件市场也有原生插件可以引用将其关闭,插件再原生也不如一行代码来的省力不是么?

plus.ios.import("UIApplication").sharedApplication().performSelector("exit"); // IOS

上面就是所需要用到的核心拉,当打开APP时就要触发,所以将此代码写在App.vue的onLaunch中;因为我们针对的是APP使用的,所以记得要填写条件编译,否则H5浏览时会报错!

export default {
        onLaunch: function() {
            const  res = uni.getSystemInfoSync() // 获取系统信息
            //#ifdef APP-PLUS  
                uni.request({  
                    url: "http://39.97.171.107:8881/ccbcase/m?xwl=api-v1/test-version/v1/getVersion", 
                    data: {
                        "system": res.platform === "android" ? 0 : 1, 
                        "versionNo": plus.runtime.version  
                    },  
                    success: (res) => {  
                        if (res.data.success == true && res.data.versionInfo.isUpdate == true) { 
                            uni.showModal({ 
                                title: "更新提示",  
                                content: '新版本' + res.data.versionInfo.VERSION_NAME,   
                                success: (req) => {  
                                    if (req.confirm) {  
                                        plus.runtime.openURL(res.data.versionInfo.APK_URL);  
                                    } else {
                                        plus.os.name == "Android" ? plus.runtime.quit() : plus.ios.import("UIApplication").sharedApplication().performSelector("exit");
                                    }
                                }  
                            })  
                        }
                    }  
                })  
                // #endif  
        }
}

在这里给后端传了两个参数一个手机系统以0或1进行发送,还有一个就是当前云打包时的版本号,以便后端进行版本的比对!

一个简单的功能就可以实现,如果要考虑当前手机是否连接wifi,更新包的大小,安装失败或更新失败等问题的话,后续还需持续的完善,供参考!

你可能感兴趣的:(编程大白话之-uniapp更新版本及关闭APP)