封装微信分享到朋友/朋友圈js

来源:互联网 发布:网络攻防web 编辑:程序博客网 时间:2024/04/29 05:01

github地址:
https://github.com/saopang/snippets/tree/master/web

只封装了微信分享到朋友和朋友圈:
在页面引入:

<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script src="/js/wxShare-1.1.0"></script>

然后在业务代码里调用:

wxShare.title='title';wxShare.desc='desc';wxShare.successCallback=function(){};wxShare.ok();

tips:
微信每次更新分享话术都要重新调一次wx.onMenuShareAppMessage 或者wx.onMenuShareTimeline;
所以如果修改话术调用完封装的wxShare.title 等信息后,要再调一次wxShare.ok() 进行更新分享

/** * 微信分享给朋友/朋友圈 * @wxShare  {object} 分享给朋友/朋友圈的参数和成功失败回调 * wxShare.title.desc.url.imgUrl.successCallback.cancelCallback.ok() * @return {[type]} [description] */$.get('/wxShare.action', { url: location.href.split('#')[0] }).done(function(res) {    wx.config({        debug: false,        appId: res.appId,        timestamp: res.timestamp,        nonceStr: res.nonceStr,        signature: res.signature,        jsApiList: [            'checkJsApi',            'onMenuShareTimeline',            'onMenuShareAppMessage',            'onMenuShareQQ',            'onMenuShareWeibo',            'hideMenuItems',            'showMenuItems',            'hideAllNonBaseMenuItem',            'showAllNonBaseMenuItem',            'translateVoice',            'startRecord',            'stopRecord',            'onRecordEnd',            'playVoice',            'pauseVoice',            'stopVoice',            'uploadVoice',            'downloadVoice',            'chooseImage',            'previewImage',            'uploadImage',            'downloadImage',            'getNetworkType',            'openLocation',            'getLocation',            'hideOptionMenu',            'showOptionMenu',            'closeWindow',            'scanQRCode',            'chooseWXPay',            'openProductSpecificView',            'addCard',            'chooseCard',            'openCard'        ]    });}).fail(function() { console.log('微信分享获取后台参数ajax失败!'); });var wxShare = {    ok: function() {        var self = this;        self.title = self.title || 'title';        self.desc = self.desc || 'desc';        self.link = self.link || location.href;        self.imgUrl = self.imgUrl || location.protocol + '//' + location.host + '/logo.jpg';        wx.ready(function() {            wx.onMenuShareAppMessage({                title: self.title,                desc: self.desc,                link: self.link,                imgUrl: self.imgUrl,                success: function() {                    console.log('分享给朋友成功!');                    if (typeof self.successCallback === 'function') {                        self.successCallback();                    }                },                cancel: function() {                    console.log('分享给朋友失败!');                    if (typeof self.cancelCallback === 'function') {                        self.cancelCallback();                    }                }            });            wx.onMenuShareTimeline({                title: self.title2 || self.title,                desc: self.desc2 || self.desc,                link: self.link2 || self.link,                imgUrl: self.imgUrl2 || self.imgUrl,                success: function() {                    console.log('分享到朋友圈成功!');                    if (typeof self.successCallback2 === 'function') {                        self.successCallback2();                    } else if (typeof self.successCallback === 'function') {                        self.successCallback();                    }                },                cancel: function() {                    console.log('分享到朋友圈失败!');                    if (typeof self.cancelCallback2 === 'function') {                        self.cancelCallback2();                    } else if (typeof self.cancelCallback === 'function') {                        self.cancelCallback();                    }                }            });        });    }}
1 0
原创粉丝点击