index.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <template>
  2. <view>
  3. <web-view src="http://61.177.40.178:8001" @message="handleMessage" id="myWebview"></web-view>
  4. <!-- <web-view src="http://192.168.0.138:3200" @message="handleMessage" id="myWebview"></web-view> -->
  5. <!-- <web-view src="http://120.192.74.74:7501" @message="handleMessage" id="myWebview"></web-view> -->
  6. <!-- <button @click="downloadFile">点击下载文件</button> -->
  7. </view>
  8. </template>
  9. <!-- -->
  10. <!-- <script src="../../js/uni-webview"></script> -->
  11. <script>
  12. export default {
  13. data() {
  14. return {
  15. }
  16. },
  17. onReady() {
  18. },
  19. onLaunch() {
  20. // uni.onPushMessage((res)=>{
  21. // console.log('8888',res);
  22. // })
  23. },
  24. onLoad: function() {
  25. // this.currentWebView = plus.webview.currentWebview();
  26. // console.log('5555',this.currentWebView);
  27. // this.handleMessage();
  28. // this.downloadFile();
  29. },
  30. methods: {
  31. handleMessage(evt) {
  32. console.log('原始信息:' + evt)
  33. console.log('接收到的消息:' + JSON.stringify(evt));
  34. if (evt) {
  35. // let data={};
  36. let data = JSON.parse(evt.detail.data);
  37. console.log('json解析:' + JSON.stringify(data));
  38. if (data && data.content && data.title && data.content != '' && data.title != '') {
  39. uni.createPushMessage({
  40. content: data.content, // 推送内容
  41. title: data.title, // 推送标题
  42. sound: "system",
  43. success: function(res) {
  44. console.log('推送成功', res);
  45. },
  46. fail: function(err) {
  47. console.log('推送失败', err);
  48. }
  49. });
  50. } else if (data && data.type && data.type == 'file' && data.url && data.url != '' && data.fileName &&
  51. data.fileName != '' && data.token && data.token != '') {
  52. console.log("移动端文件下载通用方式")
  53. let url = data.url;
  54. let fileName = data.fileName;
  55. let token = data.token;
  56. console.log('url:' + url);
  57. this.downloadFile(url, fileName, token);
  58. } else if (data && data.type && data.type == 'scanCode') {
  59. this.currentWebView = plus.webview.currentWebview();
  60. console.log('66666',this.currentWebView);
  61. this.scancode();
  62. } else {
  63. return;
  64. }
  65. }
  66. },
  67. // downloadFile(url) {
  68. // uni.downloadFile({
  69. // url: url,
  70. // success: function(res) {
  71. // if (res.statusCode === 200) {
  72. // console.log('下载成功:' + JSON.stringify(res));
  73. // uni.saveFile({
  74. // tempFilePath: res.tempFilePath,
  75. // success: function(res) {
  76. // var savedFilePath = res.savedFilePath;
  77. // console.log("download:" + savedFilePath)
  78. // uni.openDocument({
  79. // filePath: savedFilePath
  80. // });
  81. // }
  82. // });
  83. // }
  84. // }
  85. // });
  86. // },
  87. scancode() {
  88. uni.scanCode({
  89. scanType: ['qrCode'],
  90. success: function(res) {
  91. console.log('条码类型:' + res.scanType);
  92. console.log('条码内容:' + res.result);
  93. // let result=JSON.stringify(res.result)
  94. plus.webview.getDisplayWebview()[0].evalJS(`window.postJS(${res.result})`)
  95. },
  96. });
  97. // uni.postMessage({
  98. // data:{
  99. // title:'555555'
  100. // }
  101. // })
  102. },
  103. downloadFile(_url, _name, _token) {
  104. uni.downloadFile({
  105. url: _url, //文件链接
  106. header: {
  107. "token": _token
  108. },
  109. success: (res) => {
  110. if (res.statusCode === 200) {
  111. console.log("res:", res)
  112. uni.saveFile({
  113. tempFilePath: res.tempFilePath,
  114. success: function(res) {
  115. var savedFilePath = res.savedFilePath;
  116. let lastSlashIndex = savedFilePath.lastIndexOf("/");
  117. let name_index = _name.lastIndexOf('.');
  118. let fileName = _name.slice(0, name_index) + Date.now() + _name
  119. .slice(name_index, _name.length)
  120. var newFilePath = savedFilePath.slice(0, lastSlashIndex + 1) +
  121. fileName;
  122. console.log("download:" + savedFilePath)
  123. console.log('修改之后的文件路径:' + newFilePath)
  124. //修改名称
  125. plus.io.resolveLocalFileSystemURL(savedFilePath, entry => {
  126. entry.getParent(_oldFile => {
  127. entry.moveTo(_oldFile, '/' + fileName,
  128. newFilePath => {
  129. console.log('文件名称替换完成');
  130. // console.log('000',newFilePath.fullPath);
  131. })
  132. })
  133. })
  134. setTimeout(() => {
  135. uni.openDocument({
  136. filePath: newFilePath,
  137. success() {
  138. console.log('打开成功');
  139. },
  140. fail() {
  141. console.log('打开失败');
  142. }
  143. });
  144. }, 1000)
  145. }
  146. });
  147. }
  148. },
  149. fail: (err) => {
  150. uni.showToast({
  151. icon: 'none',
  152. mask: true,
  153. title: '失败请重新下载',
  154. });
  155. },
  156. })
  157. },
  158. }
  159. }
  160. </script>
  161. <style>
  162. </style>