uniapp —— 微信小程序预览文件

本文介绍如何使用uni内置方法处理后端返回的文件流,并实现文件预览功能。通过拼接后端接口路径与文件Token的方式,利用uni.downloadFile下载文件,再用uni.openDocument进行预览。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用uni内置方法下载预览

1.问题:但是内置方法一般使用的是url预览,如果接口返回的是文件流,前端如何处理

uni.downloadFile

在这里插入图片描述

uni.openDocument

在这里插入图片描述

2.解决:后端接口路径拼接,如果使用的是PC端下载文件的接口,但接口返回的是文件流,可以将地址进行拼接,放到uni.downloadFile中的url中

const url = `https://xxx.com/api/file/pdf?fileToken=${fileToken}`;
uni.downloadFile({
   url,
   headers: {
     'Content-Type': 'application/x-www-form-urlencoded'
   },
   success: (res) => {
     const filePath = res.tempFilePath;
     uni.openDocument({
       filePath: filePath,
       showMenu: true,
       success: function (res) {
         console.log('打开文档成功');
       }
     });
   },
   fail: err => {
     console.log(url);
     console.log('读取失败');
   }
 });

3.tip:网上的其他办法,比如使用Blob方法转换文件流的皆不可采用, new Blob及window.URL.createObjectURL都是适用于js对象,小程序不生效,如果上述方法不生效,需要前后端配合,或是将文件流返回的格式改为url返回,直接使用内置方法下载返回的url,预览即可。

### 使用 UniApp 开发微信小程序的示例项目 #### 创建一个简单的待办事项应用程序 此示例展示了如何创建一个基本的待办事项列表应用,该应用允许用户添加新任务并标记已完成的任务。 ##### 1. 环境准备 为了开始构建基于 UniApp微信小程序,需先安装 HBuilderX IDE 和配置好微信开发者工具[^2]。确保已经注册成为微信公众平台开发者,并获得了相应的 AppID。 ##### 2. 初始化项目结构 在 HBuilderX 中新建一个名为 `todo-app` 的 UniApp 项目: ```bash mkdir todo-app cd todo-app npm init @vue/cli my-todo --type=mp-weixin ``` 这会初始化一个新的 Vue CLI 项目模板,专门针对微信小程序进行了优化。 ##### 3. 编写核心逻辑 编辑 `pages/index/index.vue` 文件以定义页面布局和交互行为: ```html <template> <view class="container"> <!-- 输入框 --> <input v-model="newTask" placeholder="输入新的任务..." /> <!-- 添加按钮 --> <button type="primary" size="mini" @click="addTask">添加</button> <!-- 列表显示区域 --> <ul> <li v-for="(task, index) in tasks" :key="index"> {{ task }} <switch checked="{{false}}" bindchange="toggleComplete(index)" /> </li> </ul> </view> </template> <script> export default { data() { return { newTask: '', tasks: [] }; }, methods: { addTask() { if (this.newTask.trim()) { this.tasks.push(this.newTask); this.newTask = ''; } }, toggleComplete(e) { console.log('完成状态改变:', e.detail.value); // 处理完成切换事件 } } }; </script> <style scoped> .container { padding: 20px; } input { width: calc(100% - 80rpx); margin-bottom: 10px; } button { float:right;} ul li{ display:flex; justify-content.spaceBetween; align-items:center;padding-top:5px;padding-bottom:5px;border-bottom:#ccc solid 1px} </style> ``` 上述代码片段中包含了用于管理待办事项的核心功能——添加新条目以及更新其完成状态的功能。 ##### 4. 配置与调试 保存更改后,在 HBuilderX 内点击编译按钮将项目同步到连接好的微信开发者工具里进行实时预览和调试。也可以直接扫描二维码体验实际效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值