uniapp app分享pdf等文件等到微信以及其他应用
·
文章主要介绍了如何在uniapp中实现PDF等文件的分享功能,通过使用特定的分享插件,可以绕过uni.app自带API的限制。安卓系统上分享至微信无需appid,iOS上则需要配置appid。分享过程包括创建下载任务,然后调用FileShare插件进行分享。用户需要注意权限配置和云插件的使用。
1. uniapp自带分享功能的局限性
- uniapp自带的
uni.shareAPI只能分享图文等内容,无法分享PDF等文件。 - 如果需要分享文件,必须调用系统的分享功能。
2. 分享插件的使用
- 插件地址:分享插件地址
- 插件优势:
- 安卓分享到微信无需配置appid。
- 注意事项:PDF文件名不能包含
/、\、?等特殊字符,否则微信会自动去掉斜杠及其前面的字符。
3. 封装用法
/**
* 任意文件分享,需勾选云插件并云打包
* 安卓调用系统分享无需勾选配置appid,Ios需勾选分享配置,并添加微信appid
* 参数传对象
* 参数url:文件网络地址 必填
* 参数fileType:分享的对象 QQ为QQ,微信为WX,系统默认是SYSTEM,不填写默认SYSTEM
* 参数name:文件名字 如:电子发票
*/
const FileShare = uni.requireNativePlugin('life-FileShare'); // 分享文件
const anyShareFile = (e) => {
if (!e.url) return 'url缺失';
let url = e.url;
let fileType = e.fileType || 'SYSTEM';
let name = e.name || '文件';
let aa = name + "." + url.slice(url.lastIndexOf(".") + 1).toLowerCase(); // 获取该文件类型
// 下载文件
var dtask = plus.downloader.createDownload(url, { filename: "_doc/pdf/" + aa }, function(d, status) {
if (status == 200) {
FileShare.render({
type: fileType, // QQ为QQ,微信为WX,系统默认是SYSTEM
filePath: plus.io.convertLocalFileSystemURL(d.filename),
}, result => {
// 处理分享结果
});
} else {
console.log("Download failed: " + status);
}
});
dtask.start();
}
更多推荐

所有评论(0)