问题:在分享文件没好友的时候,IOS分享失败,安卓却是成功的,IOS出现以下错误:
开发工具提示 saveFile:fail tempFilePath file not exist 1301000错误
解释:在调用wx.FileSystemManager.saveFile()方法的时候,传入的参数不是临时文件路径,或者是目标路径无访问权限(usr目录)。
个人理解:方法用错了,下面介绍另一种简单的小程序分享文件给好友的方法。
1、将文件创建好并写入数据
/**
* 下载文件
*/
downloadFlie(measureUid) {
const that = this;
// 二进制数据
let recordArrayBuffer = uni.getStorageSync(Uid);
// 使用文件系统管理器将二进制数据写入文件
const fs = wx.getFileSystemManager();
// ${wx.env.USER_DATA_PATH}可获取用户目录下的本地路径
// temp.txt这个随便填
const filePath = `${wx.env.USER_DATA_PATH}/temp.txt`;
try {
// 文档 https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.writeFileSync.html
// 根据自己情况写入数据,我这里是直接写入二进制数据
fs.writeFileSync(filePath, recordArrayBuffer, 'hex')
console.log('文件已创建:', filePath);
// 这个是本地文件地址
that.tempFilePath = filePath;
} catch (err) {
console.error('写入文件出错:', err);
}
},
2、分享文件给好友
/**
* 将下载好的record文件 分享给好友
* 步骤:1、使用wx.getFileSystemManager().writeFileSync(),写入文件(自定义文件路径)
* 2、调用wx.shareFileMessage分享文件给好友,条件是要上面的自定义文件路径
*/
shareFile() {
// 自定义文件名
let fileName = "hello.txt";
wx.shareFileMessage({
// 上一步的本地文件地址
filePath: this.tempFilePath,
fileName: fileName,
success() {
console.log('转发文档成功')
},
fail: console.error,
})
},
感谢点赞、收藏,谢谢