index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <view>
  3. <web-view src="http://61.177.40.178:8001" @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. // uni.onPushMessage((res)=>{
  18. // console.log('8888',res);
  19. // })
  20. },
  21. onLoad: function() {
  22. // this.handleMessage();
  23. // this.downloadFile();
  24. },
  25. methods: {
  26. handleMessage(evt) {
  27. console.log('原始信息:' + evt)
  28. console.log('接收到的消息:' + JSON.stringify(evt));
  29. if (evt) {
  30. // let data={};
  31. let data = JSON.parse(evt.detail.data);
  32. console.log('json解析:' + JSON.stringify(data));
  33. if (data && data.content && data.title && data.content != '' && data.title != '') {
  34. uni.createPushMessage({
  35. content: data.content, // 推送内容
  36. title: data.title, // 推送标题
  37. sound: "system",
  38. success: function(res) {
  39. console.log('推送成功', res);
  40. },
  41. fail: function(err) {
  42. console.log('推送失败', err);
  43. }
  44. });
  45. } else if (data && data.type && data.type == 'file' && data.url && data.url != '' && data.fileName &&
  46. data.fileName != '' && data.token && data.token != '') {
  47. console.log("移动端文件下载通用方式")
  48. let url = data.url;
  49. let fileName = data.fileName;
  50. let token = data.token;
  51. console.log('url:' + url);
  52. this.downloadFile(url, fileName, token);
  53. } else {
  54. return;
  55. }
  56. }
  57. },
  58. // downloadFile(url) {
  59. // uni.downloadFile({
  60. // url: url,
  61. // success: function(res) {
  62. // if (res.statusCode === 200) {
  63. // console.log('下载成功:' + JSON.stringify(res));
  64. // uni.saveFile({
  65. // tempFilePath: res.tempFilePath,
  66. // success: function(res) {
  67. // var savedFilePath = res.savedFilePath;
  68. // console.log("download:" + savedFilePath)
  69. // uni.openDocument({
  70. // filePath: savedFilePath
  71. // });
  72. // }
  73. // });
  74. // }
  75. // }
  76. // });
  77. // },
  78. downloadFile(_url, _name, _token) {
  79. // let timestamp=Date.now()
  80. // let URL=`${_url}?timestamp=${timestamp}`
  81. // uni.getSavedFileList({
  82. // success:function(res){
  83. // console.log('4545',res);
  84. // if(res.fileList.length>0){
  85. // // res.fileList=[];
  86. // console.log('77845',res);
  87. // uni.removeSavedFile({
  88. // filePath:res.fileList[0].filePath
  89. // });
  90. // }
  91. // }
  92. // })
  93. uni.downloadFile({
  94. url: _url, //文件链接
  95. header: {
  96. "token": _token
  97. },
  98. success: (res) => {
  99. if (res.statusCode === 200) {
  100. console.log("res:", res)
  101. uni.saveFile({
  102. tempFilePath: res.tempFilePath,
  103. success: function(res) {
  104. var savedFilePath = res.savedFilePath;
  105. let lastSlashIndex = savedFilePath.lastIndexOf("/");
  106. let name_index=_name.lastIndexOf('.');
  107. let fileName=_name.slice(0,name_index)+Date.now()+_name.slice(name_index,_name.length)
  108. var newFilePath = savedFilePath.slice(0, lastSlashIndex + 1) +
  109. fileName;
  110. console.log("download:" + savedFilePath)
  111. console.log('修改之后的文件路径:' + newFilePath)
  112. //修改名称
  113. plus.io.resolveLocalFileSystemURL(savedFilePath, entry => {
  114. entry.getParent(_oldFile => {
  115. entry.moveTo(_oldFile, '/' + fileName ,
  116. newFilePath => {
  117. console.log('文件名称替换完成');
  118. // console.log('000',newFilePath.fullPath);
  119. })
  120. })
  121. })
  122. setTimeout(()=>{
  123. uni.openDocument({
  124. filePath: newFilePath,
  125. success() {
  126. console.log('打开成功');
  127. },
  128. fail() {
  129. console.log('打开失败');
  130. }
  131. });
  132. },1000)
  133. }
  134. });
  135. }
  136. },
  137. fail: (err) => {
  138. uni.showToast({
  139. icon: 'none',
  140. mask: true,
  141. title: '失败请重新下载',
  142. });
  143. },
  144. })
  145. },
  146. }
  147. }
  148. </script>
  149. <style>
  150. </style>