一、需求
需求如标题所示,就是在h5页面中分享base64的文件给微信好友
二、实现思路
h5页面跳回微信小程序,在微信程序中转发,然后再回到h5页面
三、实现步骤
1、h5页面中,添加分享图标
<view class="share">
<button class="btn_share" @click="sendWX">分享到微信</button>
</view>
2、h5页面中,跳回到微信小程序
//发送到微信
sendWX() {
wx.miniProgram.navigateTo({
url: '/pages/shareWX/shareWX?xm=' + this.xm + '&pdf=' + encodeURIComponent(this.file) + '&fileName=' + 'XXXXX'
});
}
其中路径是/pages/shareWX/shareWX,需要携带的参数是姓名、base64字符串(不包含前缀:data:application/pdf;base64,)以及文件名称
3、微信小程序页面完整代码
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
xm: '',
file: '',
fileName: '',
filePath: ''
};
},
methods: {
write() {
const fs = wx.getFileSystemManager();
fs.writeFile({
filePath: this.filePath,
data: this.file,
encoding: 'base64',
success(res) {
// console.log(111, res);
},
fail(res) {
console.error(res);
}
});
},
share() {
const fs = wx.getFileSystemManager();
wx.shareFileMessage({
filePath: this.filePath,
success(res2) {
fs.unlink({
filePath: this.filePath,
success: function () {
uni.navigateBack({
delta: 1
});
},
fail: function (error) {
console.log('文件删除失败', error);
uni.navigateBack({
delta: 1
});
}
});
},
fail: console.error
});
}
},
onLoad(options) {
this.xm = options.xm;
this.file = decodeURIComponent(options.pdf);
this.fileName = options.fileName;
this.filePath = wx.env.USER_DATA_PATH + '/' + this.xm + '的' + this.fileName + '.pdf';
this.write();
uni.showModal({
title: '提示',
content: '确定要分享吗?',
success: (res) => {
if (res.confirm) {
this.share();
} else {
uni.navigateBack({
delta: 1
});
}
}
});
}
};
</script>
<style lang="less"></style>
实现步骤:
????????①接受参数
????????② 通过wx.getFileSystemManager()写入内存
????????③分享pdf
????????④删除保存的文件
四、总结
上述方式是我实现的方式,欢迎交流