編程大白話之-uniapp更新版本及關(guān)閉APP

我使用uniapp開發(fā)的APP暫時(shí)還沒有上架,Android是將apk放在了服務(wù)上,將線上地址生成了二維碼,IOS是將ipa(企業(yè)版)依托線上分發(fā)網(wǎng)站生成二維碼,供內(nèi)部使用。

不管是上架還是內(nèi)部使用,開發(fā)APP后我們不可避免的要更新版本,我們暫不考慮熱更新,直接強(qiáng)制更新,如果不同意,那么就關(guān)閉APP!嘿哈~!


捕獲.PNG

用戶確認(rèn)時(shí)我們通過瀏覽器打開新版本的下載地址,進(jìn)行下載。

 plus.runtime.openURL()

點(diǎn)擊取消時(shí)就無情的將APP進(jìn)行關(guān)閉。

plus.runtime.quit() // Android

IOS系統(tǒng)不支持這種關(guān)閉APP的方法,插件市場(chǎng)也有原生插件可以引用將其關(guān)閉,插件再原生也不如一行代碼來的省力不是么?

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

上面就是所需要用到的核心拉,當(dāng)打開APP時(shí)就要觸發(fā),所以將此代碼寫在App.vue的onLaunch中;因?yàn)槲覀冡槍?duì)的是APP使用的,所以記得要填寫條件編譯,否則H5瀏覽時(shí)會(huì)報(bào)錯(cuò)!

export default {
        onLaunch: function() {
            const  res = uni.getSystemInfoSync() // 獲取系統(tǒng)信息
            //#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  
        }
}

在這里給后端傳了兩個(gè)參數(shù)一個(gè)手機(jī)系統(tǒng)以0或1進(jìn)行發(fā)送,還有一個(gè)就是當(dāng)前云打包時(shí)的版本號(hào),以便后端進(jìn)行版本的比對(duì)!

一個(gè)簡單的功能就可以實(shí)現(xiàn),如果要考慮當(dāng)前手機(jī)是否連接wifi,更新包的大小,安裝失敗或更新失敗等問題的話,后續(xù)還需持續(xù)的完善,供參考!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容