前言
微信分享是一个很重要的社交功能,uniapp封装了uni.share(OBJECT)分享功能,可以分享 纯文 / 纯图 / 图文 / 视频 / 音乐 / 小程序 ,但是唯独没有文件分享的选项,无法分享dpf, excel的xlsx文档等等,如果原生做文件分享很简单,分享pdf、分享xlsx都很简单
Android原生代码分享
1、注册
public void init(JSONObject options){
// 微信开放平台上申请的一个appid
this.APP_ID = options.getString("appid");
iwxapi = WXAPIFactory.createWXAPI(mContext(), APP_ID, false);
用于获取分享成功失败的状态,如果不需要状态就可以注释掉
iwxapi.handleIntent(getIntent(), this);
iwxapi.registerApp(APP_ID);
}
2、分享的功能代码
WXFileObject fileObj = new WXFileObject();
fileObj.fileData = inputStreamToByte(fullPath);// fullPath文件路径
fileObj.filePath = fullPath;
//使用媒体消息分享
WXMediaMessage msg = new WXMediaMessage(fileObj);
msg.title = "work.xlsx" ; // 注意需要带上后缀名,否则分享的内容可能无法打开
// 发送分享请求
SendMessageToWX.Req req = new SendMessageToWX.Req();
// 创建唯一标识 这里随意用时间戳生成了一个
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
// 此处场景设定为 微信聊天界面
req.scene = SendMessageToWX.Req.WXSceneSession;
// 执行
iwxapi.sendReq(req);
封装成插件后供 uni-app端调用
<script>
var shareObj = uni.requireNativePlugin("luanqing-share");
export default {
methods: {
share2WeChat(){
let appid = uni.getSystemInfoSync().appId;
shareObj.shareFile2WX({uniPath:this.path,uniAppId:appid});
}
}
}
</script>
插件下载地址
链接: 点击前往下载
\
\
\
\
上图
\