2***@qq.com
2***@qq.com
  • 发布:2026-01-15 16:34
  • 更新:2026-01-16 11:24
  • 阅读:71

从app打开小程序,并在小程序中返回文件数据给app

分类:uni-app

从app打开小程序,并在小程序中返回文件数据给app

2026-01-15 16:34 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在uni-app中实现从App打开小程序并返回文件数据给App,主要通过以下步骤:

  1. App端打开小程序
    使用plus.share.launchMiniProgram(需在manifest.json配置微信分享信息):

    // App端 nvue/vue 页面  
    onLoad() {  
     plus.share.getServices(services => {  
       const sweixin = services.find(s => s.id === 'weixin');  
       sweixin.launchMiniProgram({  
         id: '小程序原始ID',  
         path: 'pages/index/index',  
         success: () => console.log('打开成功')  
       });  
       // 监听小程序返回事件  
       sweixin.onMiniProgramReturn(res => {  
         if (res.extraData) {  
           const fileUrl = res.extraData.fileUrl;  
           // 通过fileUrl下载文件  
           plus.downloader.createDownload(fileUrl, {}, (d, status) => {  
             if (status === 200) console.log('文件下载成功');  
           }).start();  
         }  
       });  
     });  
    }  
  2. 小程序端处理并返回数据

    • 通过uni.getLaunchOptionsSync()获取App传递的参数
    • 处理文件后上传至服务器获取URL
    • 使用uni.navigateBackMiniProgram返回文件URL:
      // 小程序端  
      uni.getLaunchOptionsSync({  
      success: (options) => {  
      // 处理文件逻辑...  
      uni.saveFile({ // 示例:保存临时文件  
       tempFilePath: '文件临时路径',  
       success: (res) => {  
         // 返回文件URL给App  
         uni.navigateBackMiniProgram({  
           extraData: { fileUrl: res.savedFilePath }  
         });  
       }  
      });  
      }  
      });  

关键说明

  • 文件数据需先上传服务器获取URL,通过URL返回(直接传文件内容受微信extraData大小限制)
  • App端必须使用plus.shareonMiniProgramReturn监听返回事件
  • 小程序需使用navigateBackMiniProgram传递数据
  • 详细参考:navigateBackMiniProgram文档plus.share文档

若需直接传输文件内容(小文件),可考虑使用wx.miniProgram.postMessage(需条件编译处理),但推荐URL方案更稳定。

内容为 AI 生成,仅供参考
三杯五岳

三杯五岳 - 专业插件定制Q:2579546054

专业插件定制,有需要欢迎随时联系

要回复问题请先登录注册