uniapp如何分享文件到微信 文件分享

前言

微信分享是一个很重要的社交功能,uniapp封装了uni.share(OBJECT)分享功能,可以分享 纯文 / 纯图 / 图文 / 视频 / 音乐 / 小程序 ,但是唯独没有文件分享的选项,无法分享dpf, excel的xlsx文档等等,如果原生做文件分享很简单,分享pdf、分享xlsx都很简单

Android原生代码分享
1、注册

在执行分享之前必须要先初始化,通过appid来注册关联,如果希望得到分享之后的成功失败回调,可以通过iwxapi.handleIntent(getIntent(), this);来获取。如果无关紧要,也可以直接注释掉这行。

    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、分享的功能代码

通过创建WXMediaMessage 媒体消息对象来完成文件的分享,注意标题一定要带上后缀名( msg.title = “work.xlsx” )

        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端调用

插件完成后,通过下面的uniapp层代码来调用,执行分享,通过调用原生方法shareFile2WX,传入uniapp的文件路径和应用的appid。


<script>
	var shareObj = uni.requireNativePlugin("luanqing-share");
	
	export default {
		methods: {
			share2WeChat(){
				let appid = uni.getSystemInfoSync().appId;
				shareObj.shareFile2WX({uniPath:this.path,uniAppId:appid});
			}
		}
	}
</script>

为了方便开发者直接使用,也可以直接前往
链接: 点击前往下载

上图

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值