5+API实现微信分享功能

1. 在manifest.json文件的permissions节点下添加Share节点:

"Share": {

"description": "管理社交分享插件"

}

2. 在manifest.json文件的plus -> distribute -> plugins 节点下配置平台申请应用的参数:(申请方法详见http://ask.dcloud.net.cn/article/36,另外申请前测试环境分享可用)

"share": {

    "weixin": {

        "appid": "",

        "appsecret": "",

        "discription": "微信分享"

    }

}

3.基于官方总结的简化版代码(欢迎指正):

<template>
    <div>
<input type="button" value="分享至微信" @click="shareToWechat"/>
    </div>
</template>


<script>
var shares = null;
export default {
    data() {
        return {
            
        }
    },
    methods: {
        // 分析链接
        shareToWechat() {
   var self = this;
            var shareBts=[];
            // 更新分享列表
            var ss=shares['weixin'];
            ss&&ss.nativeClient&&(shareBts.push({title:'微信朋友圈',s:ss,x:'WXSceneTimeline'}),
            shareBts.push({title:'微信好友',s:ss,x:'WXSceneSession'}));
            // 弹出分享列表
            shareBts.length>0?plus.nativeUI.actionSheet({title:'分享链接',cancel:'取消',buttons:shareBts},function(e){
                (e.index>0)&&self.shareAction(shareBts[e.index-1],true);
            }):plus.nativeUI.alert('当前环境无法支持分享链接操作!');
        },
        // H5 plus事件处理
        plusReady(){
            this.updateSerivces();
        },
        // 更新分享服务
        updateSerivces () {
            var self = this;
            plus.share.getServices(function(s){
                shares={};
                for(var i in s){
                    var t=s[i];
                    shares[t.id]=t;
                }
            }, function(e){
                let msg = '获取分享服务列表失败:'+e.message;
                alert(msg);
            });
        },
        shareAction(sb,bh) {
            var self = this;
            if(!sb||!sb.s){
                return alert("无效的分享服务!");
            }
            var msg={content:'',extra:{scene:sb.x}};
            if(bh){
                msg.href = "https://www.baidu.com";
                msg.title="我是标题哦";
                msg.content = "我是内容哦我是内容哦我是内容哦我是内容哦";
                msg.thumbs = ['logo.png'];
            }
            // 发送分享
            if(sb.s.authenticated){
                console.log('---已授权---');
                this.shareMessage(msg, sb.s);
            }else{
                console.log('---未授权---');
                sb.s.authorize(function(){
                    self.shareMessage(msg, sb.s);
                }, function(e){
                    let msg = '认证授权失败:'+ e.code + ' - ' + e.message;
                    alert(msg);
                });
            }
        },
        // 发送分享消息
        shareMessage(msg, s) {
            s.send(msg, function(){
                console.log('分享到"'+s.description+'"成功!');
            }, function(e){
                let msg = '分享到"'+s.description+'"失败: '+JSON.stringify(e);
                alert(msg);
            });
        }
    },
    created() {
        if(window.plus){
            this.plusReady();
        }else{
            document.addEventListener('plusready', this.plusReady(), false);
        }
    }
};
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值