update.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. var alog = uni.requireNativePlugin("AndroidLog")
  2. var apk = uni.requireNativePlugin("ApkPlug")
  3. function update(vue){
  4. plus.runtime.getProperty(plus.runtime.appid, function(wgtInfo){
  5. vue.$u.api.appveriosn({
  6. appid: wgtInfo.appid,
  7. name: wgtInfo.name,
  8. versionName: wgtInfo.version,
  9. versionCode: wgtInfo.versionCode
  10. })
  11. .then(res => {
  12. let data = res.data;
  13. if(data.isUpload && data.wgtUrl){
  14. wgtUpdate(data)
  15. }else if (data.isUpload && data.pkgUrl){
  16. pkgUpdate(data);
  17. }else{
  18. updateNone();
  19. }
  20. })
  21. .catch(err => {
  22. });
  23. });
  24. }
  25. function updateNone(){
  26. plus.nativeUI.toast('已经是最新版本');
  27. }
  28. function wgtUpdate(data){
  29. uni.showModal({
  30. title: "更新提示",
  31. content: '有新版本:' + data.note,
  32. success: (res) => {
  33. if (res.confirm) {
  34. uni.downloadFile({
  35. url: data.wgtUrl,
  36. success: (downloadResult) => {
  37. if (downloadResult.statusCode === 200) {
  38. plus.runtime.install(downloadResult.tempFilePath, {
  39. force: false
  40. }, function() {
  41. plus.runtime.restart();
  42. }, function(e) {
  43. plus.nativeUI.toast('更新版本失败');
  44. });
  45. }else {
  46. plus.nativeUI.toast('下载版本失败');
  47. }
  48. }
  49. });
  50. }
  51. }
  52. })
  53. }
  54. function pkgUpdate(data){
  55. alog.info({msg: '全量更新' + JSON.stringify(data)})
  56. uni.showModal({
  57. title: "更新提示",
  58. content: '有新版本:' + data.note,
  59. success: (res) => {
  60. if (res.confirm) {
  61. // plus.runtime.openURL(data.pkgUrl);
  62. let downloadTask = uni.downloadFile({
  63. url: data.pkgUrl,
  64. success: (downloadResult) => {
  65. if (downloadResult.statusCode === 200) {
  66. alog.info({msg: 'apk下载完成:' + JSON.stringify(downloadResult)})
  67. // plus.runtime.install(downloadResult.tempFilePath, {
  68. // force: false
  69. // }, function() {
  70. // plus.runtime.restart();
  71. // }, function(e) {
  72. // plus.nativeUI.toast('更新版本失败');
  73. // });
  74. // apk.instll(downloadResult.tempFilePath);
  75. }else {
  76. plus.nativeUI.toast('下载版本失败');
  77. }
  78. }
  79. });
  80. downloadTask.onProgressUpdate((res) => {
  81. alog.info({msg: '下载进度' + res.progress});
  82. alog.info({msg: '已经下载的数据长度' + res.totalBytesWritten});
  83. alog.info({msg: '预期需要下载的数据总长度' + res.totalBytesExpectedToWrite});
  84. });
  85. }
  86. }
  87. })
  88. }
  89. export default update