หลังจากที่การพัฒนาแอปของเราเสร็จสิ้นแล้ว คงหลีกเลี่ยงไม่ได้ที่ผลิตภัณฑ์จะได้รับการอัปเกรดในอนาคต ดังนั้นเราจึงหวังว่าแอปจะได้รับการอัปเกรดโดยอัตโนมัติบนโทรศัพท์มือถือของลูกค้า ซึ่งสามารถแบ่งออกเป็นอัปเกรดอัตโนมัติและอัปเกรดด้วยตนเอง
อัปเกรดอัตโนมัติ: โดยปกติเมื่อแอปของลูกค้าเปิดหน้าแรกเป็นครั้งแรก
อัปเกรดด้วยตนเอง: จัดเตรียมทางเข้าอัปเกรดในอินเทอร์เฟซของแอป
เอฟเฟกต์อินเทอร์เฟซจะแสดงดังนี้:
จริงๆ แล้วโค้ดนั้นง่ายมาก แต่จำเป็นต้องประมวลผลแยกต่างหากสำหรับ iOS และ Android แนวคิดพื้นฐานคือการรับหมายเลขเวอร์ชันแอปของเครื่องภายในเครื่อง จากนั้นเปรียบเทียบกับหมายเลขเวอร์ชันแอปบนเซิร์ฟเวอร์ หากน้อยกว่าหมายเลขเวอร์ชันแอปบนเซิร์ฟเวอร์ ให้ดำเนินการอัปเดต
var btn = [ยืนยันการอัพเกรด ยกเลิก];//รับการอัปเดตระบบแอป [ไม่ว่าจะคลิกเพื่อรับการอัปเดตด้วยตนเอง] appUpdate(ismanual) { console.log('appUpdate'); mui.plusReady(function () { plus .runtime.getProperty(plus.runtime.appid, ฟังก์ชั่น (inf) { ver = inf.version; console.log('ver:' + ver); var url = config.GetAppVersion; var ลูกค้า; var ua = navigator.userAgent.toLowerCase(); if (/iphone|ipad|ipod/.test(ua)) { //Apple phone mui.ajax ({ ประเภท: get, dataType: 'json', url: https://itunes.apple.com/lookup?id=1318127518,//รับข้อมูลข้อมูลเวอร์ชัน APPStore ที่มีอยู่ในปัจจุบัน: { id: 131812xxxx //APP ID ประจำตัวที่ไม่ซ้ำกัน }, contentType: 'application/x-www-form-urlencoded;charset=UTF-8', ความสำเร็จ: function (data) { console.log('data:' + JSON.stringify(data) ); var resultCount = data.resultCount; for (var i = 0; i < resultCount; i++) { var normItem = data.results[i].เวอร์ชัน; console.log('normItem:' + normItem) if (normItem > ver) { var _msg = พบเวอร์ชันใหม่: V + normItem; //plus.nativeUI.alert (พบเวอร์ชันใหม่: V + normItem); _msg, 'การยืนยันการอัปเกรด', btn, ฟังก์ชัน (e) { if (e.index == 0) { //ดำเนินการอัปเกรด document.location.href = 'https://itunes.apple.com/cn/app/san-gu-hui/id131812xxxx?mt=8'; //ที่อยู่ดาวน์โหลด APPStore ใหม่} }); ('หมายเลขเวอร์ชันปัจจุบันคือล่าสุด'); } return; { apkVersion: ver, }, dataType: 'json', ประเภท: 'get', หมดเวลา: 10,000, สำเร็จ: ฟังก์ชั่น (ข้อมูล) { //console.log('data:'+JSON.stringify(data)) if ( data.StatusCode = 200 && data.Data > ver) { //mui.toast (พบเวอร์ชันใหม่: V + data.Data);//รับหมายเลขเวอร์ชัน Android ใหม่ในฐานข้อมูลระยะไกล var _msg=พบเวอร์ชันใหม่: V + data.Data; mui.confirm(_msg, 'ยืนยันการอัพเกรด', btn, ฟังก์ชัน (e) { if ( e .index == 0) { //ดำเนินการอัปเกรด plus.nativeUI.toast (กำลังเตรียมสภาพแวดล้อม โปรดรอสักครู่! ); var dtask = plus.downloader.createDownload(config.apkUrl, {}, ฟังก์ชั่น (d, สถานะ) { if (สถานะ == 200) { var path = d.filename;//ดาวน์โหลด apk plus.runtime.install( เส้นทาง); // ติดตั้งไฟล์ APK โดยอัตโนมัติ } else { plus.nativeUI.alert ('การอัปเดตเวอร์ชันล้มเหลว:' + สถานะ } }); dtask.start(); } }); else { console.log('หมายเลขเวอร์ชันปัจจุบันเป็นหมายเลขล่าสุด'); if (ismanual) { mui.toast('หมายเลขเวอร์ชันปัจจุบันคือหมายเลขล่าสุด'); return; } }, ข้อผิดพลาด: function (xhr, type, errerThrown) { if (ismanual) { mui.toast('Network Abnormality, please try again later' } } }); -
แอปพลิเคชัน iOS ของเราเผยแพร่ใน Apple App Store ในขณะที่แอปพลิเคชัน Android ถูกปรับใช้โดยตรงบนเซิร์ฟเวอร์ของเราเอง (เช่นเซิร์ฟเวอร์ IIS) เนื่องจากมีตลาดแอปพลิเคชัน Android มากเกินไป ดังนั้นทุกครั้งที่อัปเกรดเวอร์ชันก็จะเหมือนเดิม สิ่งที่ลำบากมากคือทุกครั้งที่คุณออกเวอร์ชันคุณต้องไปที่ตลาดแอปพลิเคชัน Android ทั้งหมดเพื่อส่งการอัปเดต
ควรสังเกตว่าเมื่อเรียกใช้วิธีนี้โดยใช้การอัปเดตด้วยตนเองและการอัปเดตอัตโนมัติจะต้องส่งพารามิเตอร์ที่แตกต่างกันเนื่องจากในการอัพเดตอัตโนมัติหากระบบตรวจพบว่าเวอร์ชันปัจจุบันเป็นเวอร์ชันล่าสุดอยู่แล้วก็จะไม่แสดงบนไคลเอนต์ และการอัปเดตด้วยตนเอง หากเป็นเวอร์ชันล่าสุดอยู่แล้ว ลูกค้าจะต้องได้รับการเตือน
โทรอัปเดตอัตโนมัติ: appUpdate();//ตรวจหาการอัปเดตแอป
โทรอัปเดตด้วยตนเอง: appUpdate(true);//ตรวจหาการอัปเดตแอป
ข้างต้นคือเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการศึกษาของทุกคน ฉันหวังว่าทุกคนจะสนับสนุน VeVb Wulin Network