download.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. // pages/download/download.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. pageNum: 0,
  8. },
  9. /**
  10. * 生命周期函数--监听页面加载
  11. */
  12. onLoad(options) {
  13. // console.log(options)
  14. const url = decodeURIComponent(options.url || '')
  15. if (url) {
  16. this.downloadFileH5(url)
  17. } else {
  18. wx.navigateBack();
  19. }
  20. },
  21. downloadFileH5(url) {
  22. wx.showLoading({
  23. title: '文件下载中...',
  24. mask: true
  25. })
  26. let type = url.split('.');
  27. type = type[type.length - 1];
  28. // return
  29. wx.downloadFile({
  30. url: url,
  31. success: (ret) => {
  32. console.log(ret)
  33. if (ret.statusCode == 200) {
  34. if ((["png", "jpeg", "jpg"].includes(type))) {
  35. wx.saveImageToPhotosAlbum({
  36. filePath: ret.tempFilePath,
  37. complete: (err) => {
  38. // console.log(err)
  39. wx.hideLoading();
  40. wx.showToast({
  41. title: err.errMsg == 'saveImageToPhotosAlbum:ok' ? '下载成功' : '下载失败',
  42. })
  43. setTimeout(() => {
  44. wx.navigateBack();
  45. }, 500);
  46. }
  47. })
  48. } else {
  49. wx.openDocument({
  50. filePath: ret.tempFilePath,
  51. showMenu: true,
  52. success: function (res) {
  53. console.log('打开文档成功')
  54. },
  55. complete: (err)=>{
  56. console.log(err)
  57. }
  58. })
  59. }
  60. } else {
  61. wx.hideLoading();
  62. wx.showToast({
  63. title: '下载失败',
  64. })
  65. setTimeout(() => {
  66. wx.navigateBack();
  67. }, 500);
  68. }
  69. },
  70. fail: (err) => {
  71. wx.hideLoading();
  72. setTimeout(() => {
  73. wx.navigateBack();
  74. }, 500);
  75. }
  76. })
  77. },
  78. /**
  79. * 生命周期函数--监听页面初次渲染完成
  80. */
  81. onReady() {
  82. },
  83. /**
  84. * 生命周期函数--监听页面显示
  85. */
  86. onShow() {
  87. if(this.data.pageNum){
  88. wx.navigateBack();
  89. return
  90. }
  91. this.setData({
  92. pageNum: 1,
  93. })
  94. },
  95. /**
  96. * 生命周期函数--监听页面隐藏
  97. */
  98. onHide() {
  99. },
  100. /**
  101. * 生命周期函数--监听页面卸载
  102. */
  103. onUnload() {
  104. },
  105. /**
  106. * 页面相关事件处理函数--监听用户下拉动作
  107. */
  108. onPullDownRefresh() {
  109. },
  110. /**
  111. * 页面上拉触底事件的处理函数
  112. */
  113. onReachBottom() {
  114. },
  115. /**
  116. * 用户点击右上角分享
  117. */
  118. onShareAppMessage() {
  119. }
  120. })