uniapp App端如何更新

<!-- #ifdef APP-PLUS -->
            <view v-show="isupAppStatu" class="upAppBg">
                <view class="upAppBox">
                    <view class="upAppBox_title">
                        發(fā)現(xiàn)新版本
                        <text >{{isupAppList.version}}</text>
                    </view>
                    <view v-show="updateprogress" style="width: 80%;margin-bottom: 30rpx;">
                            <progress :percent="updatesum" activeColor="red" stroke-width="8" />
                    </view>
                    <view @click="upApp" class="upAppBox_btn">
                        {{updateprogresstxt}}
                    </view>
                </view>
            </view>
        <!-- #endif -->
onShow() {
            let this_ = this
            //#ifdef APP-PLUS
            //發(fā)起http請求隘击,res中包含安卓和ios最新版本號侍芝,更新描述等數(shù)據(jù)
            getVersion().then(res => {
                this.iosUrl = res.data.iosUrl   //ios更新地址
                this.AndroidUrl = res.data.aUrl //安卓更新包
                // // 需要區(qū)分ios和安卓(兩者更新APP方式不一致)
                if (/android/.test(uni.getSystemInfoSync().platform)) {
                    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                                                //獲取當(dāng)前版本的版本號跟接口返回的做對比
                                                 //strNumber()  這個方法只是吧 1.1.1 切換成111  用數(shù)字來進行對比  可以不用
                        const ver =  this_.strNumber(inf.version); //測試
                        let androidV = this_.strNumber(res.data.androidV)
                        if (androidV > ver) {
                            uni.hideTabBar()//隱藏底部導(dǎo)航欄
                            // _this.isupAppList = res.data.android // 更新描述
                            this_.isupAppStatu = true // 顯示更新提示框
                        }
                    })
                }else if (/ios/.test(uni.getSystemInfoSync().platform)){
                    
                    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
                        const ver =  this_.strNumber(inf.version); //測試
                        let androidV = this_.strNumber(res.data.v)
                        if (androidV > ver) {
                            uni.hideTabBar()//隱藏底部導(dǎo)航欄
                            // _this.isupAppList = res.data.ios // 更新描述
                            this_.isupAppStatu = true // 顯示更新提示框
                        }
                    })
                }
            })
            
            //#endif
            
        },
methods:{
      // 更新APP
            upApp(){
            // 防止用戶多次點擊
            let this_ = this
                if (this.updateprogress) {
                    return
                } else {
                    if (/android/.test(uni.getSystemInfoSync().platform)) {
                        this_.updateprogress = true //顯示進度條
                        this_.updateprogresstxt = '正在更新...' //更改按鈕文字 
                        // console.log(this.isupAppList)
                        const downloadTask = uni.downloadFile({
                         url: this_.AndroidUrl,
                         success: (res) => {
                            if (res.statusCode === 200) {
                                 this_.updateprogress = false
                                 plus.runtime.install(res.tempFilePath); // 自動安裝apk文件
                                 plus.runtime.quit();
                            } else {
                                this_.updateprogress = false
                            }
                         }
                        })
                        // 監(jiān)控下載apk的進度
                        downloadTask.onProgressUpdate((res) => {
                         this_.updatesum = res.progress
                        });
                    }else {
                        // 蘋果更新需要攜帶參數(shù)打開APPStore跳轉(zhuǎn)到上架的應(yīng)用上
                        var urlStr = encodeURI(this_.iosUrl)
                        plus.runtime.openURL(urlStr, function(res) {})
                     }
                }
            },
}

原文 : https://blog.csdn.net/long19981231/article/details/120449805

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市埋同,隨后出現(xiàn)的幾起案子州叠,更是在濱河造成了極大的恐慌,老刑警劉巖莺禁,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件留量,死亡現(xiàn)場離奇詭異窄赋,居然都是意外死亡哟冬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門忆绰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浩峡,“玉大人,你說我怎么就攤上這事错敢『苍郑” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵稚茅,是天一觀的道長纸淮。 經(jīng)常有香客問我,道長亚享,這世上最難降的妖魔是什么咽块? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮欺税,結(jié)果婚禮上侈沪,老公的妹妹穿的比我還像新娘。我一直安慰自己晚凿,他們只是感情好亭罪,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著歼秽,像睡著了一般应役。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燥筷,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天扛吞,我揣著相機與錄音,去河邊找鬼荆责。 笑死滥比,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的做院。 我是一名探鬼主播盲泛,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼濒持,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寺滚?” 一聲冷哼從身側(cè)響起柑营,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎村视,沒想到半個月后官套,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蚁孔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年奶赔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杠氢。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡站刑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鼻百,到底是詐尸還是另有隱情绞旅,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布温艇,位于F島的核電站因悲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏勺爱。R本人自食惡果不足惜晃琳,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邻寿。 院中可真熱鬧蝎土,春花似錦、人聲如沸绣否。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒜撮。三九已至暴构,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間段磨,已是汗流浹背取逾。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苹支,地道東北人砾隅。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像债蜜,于是被迫代替她去往敵國和親晴埂。 傳聞我的和親對象是個殘疾皇子究反,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容