故梦丶
2025-12-17
点 赞
1
热 度
22
评 论
0

小程序内嵌H5下载文件方案

  1. 首页
  2. 技术
  3. 小程序内嵌H5下载文件方案

文章摘要

智阅GPT

小程序内嵌H5下载文件方案

  1. 采用wx.miniProgram.navigateTo实现实时下载文件

  2. 弃用wx.miniProgram.postMessage,原因向小程序发送消息,会在以下特定时机触发组件的message事件:小程序后退、组件销毁、分享、复制链接。无法实现实时下载文件

参考方案:

  1. https://developers.weixin.qq.com/community/develop/article/doc/0004ecee1dcca0fce643b707f61013

  2. https://comate.baidu.com/zh/page/h7iyo2brg2j#2

实现方案:

前置:需要小程序端创建一个下载路由/pages/downloadJxj/index,用于navigateTo跳转

H5端:

function downloadFile(filename) {
       if (typeof wx !== 'undefined' && wx.miniProgram) {
                // 小程序环境
                const downloadUrl = `https://your-api.com/download/${filename}`;
                wx.miniProgram.navigateTo({
                    url: `/pages/downloadJxj/index?url=${encodeURIComponent(downloadUrl)}`
                });
            } else {
                // 普通H5环境
                alert('请在微信小程序中打开此页面');
            }
        }

小程序端:

app.json
"pages": [
   "pages/index/index",
   "pages/home/index",
   "pages/my/index",
   "pages/info/index",
   "pages/downloadJxj/index"  // 新的路由地址
],

在pages/downloadJxj/index.js路由页面实现

pages/downloadJxj/index.js

Page({
  data: {},

  // 下载 PDF
  doDownload(url) {
    wx.showLoading({ title: '下载中...' });

    wx.downloadFile({
      url,
      success: (res) => {
        wx.hideLoading();
        wx.openDocument({
          filePath: res.tempFilePath,
          showMenu: true,
          success: () => {
            // 下载完成后返回上一页
            wx.navigateBack({
              delta: 1  // 返回上一页
            });
          }
        })
      },
      fail(err) {
        wx.hideLoading();
        wx.showToast({
          title: '下载失败',
          icon: 'none'
        });
        console.error("文件下载失败", err);
      }
    });
  },

  onLoad(options) {
    console.log(options);
    if (options.url) {
      const url = decodeURIComponent(options.url)  // 解码
      console.log("下载 URL =", url)
      this.doDownload(url)
    } else {
      console.error("没有传入URL");
    }
  }
})


成功是一时的,但失败和平凡是我们生命的主旋律,我们在平凡的路上,一直和你们相伴!

故梦丶

intp 逻辑家

站长

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

目录

欢迎来到故梦丶的站点,为您导航全站动态

33 文章数
3 分类数
3 评论数
8标签数
最近评论
测试人

测试人


不错

故梦丶

故梦丶


1111

热门文章