美文网首页
编程大白话之-uniapp更新版本及关闭APP

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

作者: Han涛_ | 来源:发表于2020-05-07 14:27 被阅读0次

    我使用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

          本文链接:https://www.haomeiwen.com/subject/qrxaghtx.html