vue+h5 plus 第三方分享
Posted fanqiuzhuji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+h5 plus 第三方分享相关的知识,希望对你有一定的参考价值。
html:
<div class="box" style="margin-top:0;" @click="share(‘weixin‘)">微信分享</div>
<div class="box" style="margin-top:0;" @click="share(‘qq‘)">QQ分享</div>
<div class="box" style="margin-top:0;" @click="share(‘sinaweibo‘)">微博分享</div>
mounted() { if(window.plus) { this.updateSerivces(); } },
data() {
return { buttons: [{ title: ‘我的好友‘, extra: { scene: ‘WXSceneSession‘ } }, { title: ‘朋友圈‘, extra: { scene: ‘WXSceneTimeline‘ } }, ], buttons1: [{ title: ‘QQ‘, extra: { scene: ‘WXSceneSession‘ } }, ], buttons2: [ { title: ‘微博‘, extra: { scene: ‘WXSceneTimeline‘ } }, ], sweixin: null, shares: null, sqq: null, sinaweibo: null, }; },
methods: { /** * 获取微信分享通道 */ updateSerivces() { let _this = this; plus.share.getServices(function (s) { _this.shares = {}; for (var i in s) { var t = s[i]; _this.shares[t.id] = t; } _this.sweixin = _this.shares[‘weixin‘]; _this.sqq = _this.shares[‘qq‘]; _this.sinaweibo = _this.shares[‘sinaweibo‘]; }, function (e) { plus.nativeUI.alert(‘获取分享服务列表失败:‘ + e.message); }); }, //第三方分享 share(a) { let _this = this; if(a == ‘weixin‘){ let msg = { type: ‘web‘, //分享的内容的类型 title: ‘页面分享标题‘, content: ‘内容‘, thumbs: [‘http://img-cdn-qiniu.dcloud.net.cn/icon3.png‘], href: ‘https://www.baidu.com/‘, extra: { scene: "WXSceneSession" } // ‘WXSceneSession‘分享给好友,‘WXSceneTimeline‘分享到朋友圈 } plus.nativeUI.actionSheet({ title: ‘分享网页到微信‘, cancel: ‘取消‘, buttons: _this.buttons, }, function (e) { (e.index > 0) && _this.sharePage(_this.sweixin, msg, _this.buttons[e.index - 1]); }) } if(a == ‘qq‘){ let qq_msg = { type: ‘text‘, //分享的内容的类型 title: ‘页面分享标题‘, content: ‘内容‘, thumbs: [‘http://img-cdn-qiniu.dcloud.net.cn/icon3.png‘], href: ‘https://www.baidu.com/‘, } plus.nativeUI.actionSheet({ title: ‘分享网页到QQ‘, cancel: ‘取消‘, buttons: _this.buttons1, }, function (e) { (e.index > 0) && _this.sharePage(_this.sqq, qq_msg, _this.buttons[e.index - 1]); }) } if(a == ‘sinaweibo‘){ let sinaweibo_msg = { type: ‘web‘, //分享的内容的类型 title: ‘页面分享标题‘, content: ‘内容‘, thumbs: [‘http://img-cdn-qiniu.dcloud.net.cn/icon3.png‘], href: ‘https://www.baidu.com/‘, } plus.nativeUI.actionSheet({ title: ‘分享网页到微博‘, cancel: ‘取消‘, buttons: _this.buttons2, }, function (e) { (e.index > 0) && _this.sharePage(_this.sinaweibo, sinaweibo_msg, _this.buttons[e.index - 1]); }) } }, /** * 触发分享 */ sharePage(srv, msg, button) { let _this = this; // plus.nativeUI.alert(‘分享操作:‘); if (!srv) { plus.nativeUI.alert(‘无效的分享服务!‘); return; } button && (msg.extra = button.extra); // 发送分享 if (srv.authenticated) { // plus.nativeUI.alert(‘---已授权---‘); _this.doShare(srv, msg); } else { // plus.nativeUI.alert(‘---未授权---‘); srv.authorize(function () { _this.doShare(srv, msg); }, function (e) { plus.nativeUI.alert(‘认证授权失败:‘ + JSON.stringify(e)); }); } }, /** * 开始分享 */ doShare(srv, msg) { let _this = this; srv.send(msg, function () { plus.nativeUI.alert(‘分享到"‘ + srv.description + ‘"成功!‘); }, function (e) { plus.nativeUI.alert(‘分享到"‘ + srv.description + ‘"失败: ‘ + JSON.stringify(e)); }); }, }
以上是关于vue+h5 plus 第三方分享的主要内容,如果未能解决你的问题,请参考以下文章