index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <template>
  2. <view>
  3. <web-view src="http://192.168.0.205:8000" @message="handleMessage"></web-view>
  4. <!-- <button @click="downloadFile">点击下载文件</button> -->
  5. </view>
  6. </template>
  7. <!-- -->
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. }
  13. },
  14. onReady() {
  15. },
  16. onLaunch() {
  17. },
  18. onLoad: function() {
  19. // this.handleMessage();
  20. // this.downloadFile();
  21. },
  22. methods: {
  23. handleMessage(evt) {
  24. console.log('原始信息:' + evt)
  25. console.log('接收到的消息:' + JSON.stringify(evt));
  26. if (evt) {
  27. let data = JSON.parse(evt.detail.data);
  28. console.log('json解析:' + JSON.stringify(data));
  29. if (data && data.content && data.title && data.content != '' && data.title != '') {
  30. uni.createPushMessage({
  31. content: data.content, // 推送内容
  32. title: data.title, // 推送标题
  33. sound: "system",
  34. success: function(res) {
  35. console.log('推送成功', res);
  36. },
  37. fail: function(err) {
  38. console.log('推送失败', err);
  39. }
  40. });
  41. } else if (data && data.type && data.type == 'file' && data.url && data.url != '' && data.fileName &&
  42. data.fileName != '' && data.token && data.token != '') {
  43. console.log("移动端文件下载通用方式")
  44. let url = data.url;
  45. let fileName = data.fileName;
  46. let token = data.token;
  47. console.log('url:' + url);
  48. this.downloadFile(url, fileName, token);
  49. } else {
  50. return;
  51. }
  52. }
  53. },
  54. // downloadFile(url) {
  55. // uni.downloadFile({
  56. // url: url,
  57. // success: function(res) {
  58. // if (res.statusCode === 200) {
  59. // console.log('下载成功:' + JSON.stringify(res));
  60. // uni.saveFile({
  61. // tempFilePath: res.tempFilePath,
  62. // success: function(res) {
  63. // var savedFilePath = res.savedFilePath;
  64. // console.log("download:" + savedFilePath)
  65. // uni.openDocument({
  66. // filePath: savedFilePath
  67. // });
  68. // }
  69. // });
  70. // }
  71. // }
  72. // });
  73. // },
  74. downloadFile(_url, _name, _token) {
  75. uni.downloadFile({
  76. url: _url, //文件链接
  77. header: {
  78. "token": _token
  79. },
  80. success: (res) => {
  81. if (res.statusCode === 200) {
  82. console.log("res:", res)
  83. uni.saveFile({
  84. tempFilePath: res.tempFilePath,
  85. success: function(res) {
  86. var savedFilePath = res.savedFilePath;
  87. let lastSlashIndex = savedFilePath.lastIndexOf("/");
  88. var newFilePath = savedFilePath.slice(0, lastSlashIndex + 1) +
  89. _name;
  90. console.log("download:" + savedFilePath)
  91. console.log('修改之后的文件路径:' + newFilePath)
  92. //修改名称
  93. plus.io.resolveLocalFileSystemURL(savedFilePath, entry => {
  94. entry.getParent(_oldFile => {
  95. entry.moveTo(_oldFile, '/' + _name,
  96. newFilePath => {
  97. console.log('文件名称替换完成');
  98. })
  99. })
  100. })
  101. setTimeout(()=>{
  102. uni.openDocument({
  103. filePath: newFilePath,
  104. success() {
  105. console.log('打开成功');
  106. },
  107. fail() {
  108. console.log('打开失败');
  109. }
  110. });
  111. },1000)
  112. }
  113. });
  114. }
  115. },
  116. fail: (err) => {
  117. uni.showToast({
  118. icon: 'none',
  119. mask: true,
  120. title: '失败请重新下载',
  121. });
  122. },
  123. })
  124. },
  125. }
  126. }
  127. </script>
  128. <style>
  129. </style>