update.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. var alog = uni.requireNativePlugin("AndroidLog")
  2. var apk = uni.requireNativePlugin("ApkPlug")
  3. function update(vue, callback){
  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. updateExecute({
  16. note: data.note,
  17. downUrl: data.wgtUrl,
  18. type: 1,
  19. callback: callback
  20. });
  21. }else if (data.isUpload && data.pkgUrl){
  22. // pkgUpdate(data);
  23. updateExecute({
  24. note: data.note,
  25. downUrl: data.pkgUrl,
  26. type: 2,
  27. callback: callback
  28. });
  29. }else{
  30. plus.nativeUI.toast('已经是最新版本');
  31. }
  32. })
  33. .catch(err => {
  34. });
  35. });
  36. }
  37. function updateExecute(data){
  38. alog.info({msg: '升级信息:' + JSON.stringify(data)});
  39. uni.showModal({
  40. title: "更新提示",
  41. content: '有新版本:' + data.note,
  42. success: (res) => {
  43. if (res.confirm) {
  44. if(data.type === 1){
  45. uni.downloadFile({
  46. url: data.downUrl,
  47. success: (downloadResult) => {
  48. if (downloadResult.statusCode === 200) {
  49. plus.runtime.install(downloadResult.tempFilePath, {
  50. force: false
  51. }, function() {
  52. plus.runtime.restart();
  53. }, function(e) {
  54. plus.nativeUI.toast('更新版本失败');
  55. });
  56. }else {
  57. plus.nativeUI.toast('下载版本失败');
  58. }
  59. }
  60. });
  61. }else{
  62. plus.runtime.openURL(data.downUrl);
  63. // var downTask = uni.downloadFile({
  64. // url: data.downUrl,
  65. // success: (downloadResult) => {
  66. // if (downloadResult.statusCode === 200) {
  67. // var locl = plus.io.convertLocalFileSystemURL(downloadResult.tempFilePath);
  68. // alog.info({msg: '转换本地路径:' + locl});
  69. // apk.instll(locl);
  70. // }else {
  71. // plus.nativeUI.toast('下载版本失败');
  72. // }
  73. // }
  74. // });
  75. // downTask.onProgressUpdate((res) => {
  76. // alog.info({msg: '下载进度' + res.progress});
  77. // });
  78. }
  79. }
  80. }
  81. })
  82. }
  83. export default update