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>