yqb
Version:
Static Package Manager
638 lines (567 loc) • 27.8 kB
JavaScript
// http://res.wx.qq.com/open/js/jweixin-1.0.0.js
!function(a,b){"function"==typeof define&&(define.amd||define.cmd)?define(function(){return b(a)}):b(a,!0)}(this,function(a,b){function c(b,c,d){a.WeixinJSBridge?WeixinJSBridge.invoke(b,e(c),function(a){g(b,a,d)}):j(b,d)}function d(b,c,d){a.WeixinJSBridge?WeixinJSBridge.on(b,function(a){d&&d.trigger&&d.trigger(a),g(b,a,c)}):d?j(b,d):j(b,c)}function e(a){return a=a||{},a.appId=B.appId,a.verifyAppId=B.appId,a.verifySignType="sha1",a.verifyTimestamp=B.timestamp+"",a.verifyNonceStr=B.nonceStr,a.verifySignature=B.signature,a}function f(a){return{timeStamp:a.timestamp+"",nonceStr:a.nonceStr,"package":a.package,paySign:a.paySign,signType:a.signType||"SHA1"}}function g(a,b,c){var d,e,f;switch(delete b.err_code,delete b.err_desc,delete b.err_detail,d=b.errMsg,d||(d=b.err_msg,delete b.err_msg,d=h(a,d),b.errMsg=d),c=c||{},c._complete&&(c._complete(b),delete c._complete),d=b.errMsg||"",B.debug&&!c.isInnerInvoke&&alert(JSON.stringify(b)),e=d.indexOf(":"),f=d.substring(e+1)){case"ok":c.success&&c.success(b);break;case"cancel":c.cancel&&c.cancel(b);break;default:c.fail&&c.fail(b)}c.complete&&c.complete(b)}function h(a,b){var e,f,c=a,d=p[c];return d&&(c=d),e="ok",b&&(f=b.indexOf(":"),e=b.substring(f+1),"confirm"==e&&(e="ok"),"failed"==e&&(e="fail"),-1!=e.indexOf("failed_")&&(e=e.substring(7)),-1!=e.indexOf("fail_")&&(e=e.substring(5)),e=e.replace(/_/g," "),e=e.toLowerCase(),("access denied"==e||"no permission to execute"==e)&&(e="permission denied"),"config"==c&&"function not exist"==e&&(e="ok"),""==e&&(e="fail")),b=c+":"+e}function i(a){var b,c,d,e;if(a){for(b=0,c=a.length;c>b;++b)d=a[b],e=o[d],e&&(a[b]=e);return a}}function j(a,b){if(!(!B.debug||b&&b.isInnerInvoke)){var c=p[a];c&&(a=c),b&&b._complete&&delete b._complete,console.log('"'+a+'",',b||"")}}function k(){if(!(u||B.debug||"6.0.2">y||A.systemType<0)){var b=new Image;A.appId=B.appId,A.initTime=z.initEndTime-z.initStartTime,A.preVerifyTime=z.preVerifyEndTime-z.preVerifyStartTime,E.getNetworkType({isInnerInvoke:!0,success:function(a){A.networkType=a.networkType;var c="https://open.weixin.qq.com/sdk/report?v="+A.version+"&o="+A.isPreVerifyOk+"&s="+A.systemType+"&c="+A.clientVersion+"&a="+A.appId+"&n="+A.networkType+"&i="+A.initTime+"&p="+A.preVerifyTime+"&u="+A.url;b.src=c}})}}function l(){return(new Date).getTime()}function m(b){v&&(a.WeixinJSBridge?b():q.addEventListener&&q.addEventListener("WeixinJSBridgeReady",b,!1))}function n(){E.invoke||(E.invoke=function(b,c,d){a.WeixinJSBridge&&WeixinJSBridge.invoke(b,e(c),d)},E.on=function(b,c){a.WeixinJSBridge&&WeixinJSBridge.on(b,c)})}var o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E;if(!a.jWeixin)return o={config:"preVerifyJSAPI",onMenuShareTimeline:"menu:share:timeline",onMenuShareAppMessage:"menu:share:appmessage",onMenuShareQQ:"menu:share:qq",onMenuShareWeibo:"menu:share:weiboApp",onMenuShareQZone:"menu:share:QZone",previewImage:"imagePreview",getLocation:"geoLocation",openProductSpecificView:"openProductViewWithPid",addCard:"batchAddCard",openCard:"batchViewCard",chooseWXPay:"getBrandWCPayRequest"},p=function(){var b,a={};for(b in o)a[o[b]]=b;return a}(),q=a.document,r=q.title,s=navigator.userAgent.toLowerCase(),t=navigator.platform.toLowerCase(),u=!(!t.match(/mac/i)&&!t.match(/win/i)),v=-1!=s.indexOf("micromessenger"),w=-1!=s.indexOf("android"),x=-1!=s.indexOf("iphone")||-1!=s.indexOf("ipad"),y=function(){var a=s.match(/micromessenger\/(\d+\.\d+\.\d+)/)||s.match(/micromessenger\/(\d+\.\d+)/);return a?a[1]:""}(),z={initStartTime:l(),initEndTime:0,preVerifyStartTime:0,preVerifyEndTime:0},A={version:1,appId:"",initTime:0,preVerifyTime:0,networkType:"",isPreVerifyOk:1,systemType:x?1:w?2:-1,clientVersion:y,url:encodeURIComponent(location.href)},B={},C={_completes:[]},D={state:0,res:{}},m(function(){z.initEndTime=l()}),E={config:function(a){B=a,j("config",a);var b=B.check===!1?!1:!0;m(function(){var a,d,e;if(b)c(o.config,{verifyJsApiList:i(B.jsApiList)},function(){C._complete=function(a){z.preVerifyEndTime=l(),D.state=1,D.res=a},C.success=function(){A.isPreVerifyOk=0},C.fail=function(a){C._fail?C._fail(a):D.state=-1};var a=C._completes;return a.push(function(){k()}),C.complete=function(){for(var c=0,d=a.length;d>c;++c)a[c]();C._completes=[]},C}()),z.preVerifyStartTime=l();else{for(D.state=1,a=C._completes,d=0,e=a.length;e>d;++d)a[d]();C._completes=[]}}),B.beta&&n()},ready:function(a){0!=D.state?a():(C._completes.push(a),!v&&B.debug&&a())},error:function(a){"6.0.2">y||(-1==D.state?a(D.res):C._fail=a)},checkJsApi:function(a){var b=function(a){var c,d,b=a.checkResult;for(c in b)d=p[c],d&&(b[d]=b[c],delete b[c]);return a};c("checkJsApi",{jsApiList:i(a.jsApiList)},function(){return a._complete=function(a){if(w){var c=a.checkResult;c&&(a.checkResult=JSON.parse(c))}a=b(a)},a}())},onMenuShareTimeline:function(a){d(o.onMenuShareTimeline,{complete:function(){c("shareTimeline",{title:a.title||r,desc:a.title||r,img_url:a.imgUrl||"",link:a.link||location.href,type:a.type||"link",data_url:a.dataUrl||""},a)}},a)},onMenuShareAppMessage:function(a){d(o.onMenuShareAppMessage,{complete:function(){c("sendAppMessage",{title:a.title||r,desc:a.desc||"",link:a.link||location.href,img_url:a.imgUrl||"",type:a.type||"link",data_url:a.dataUrl||""},a)}},a)},onMenuShareQQ:function(a){d(o.onMenuShareQQ,{complete:function(){c("shareQQ",{title:a.title||r,desc:a.desc||"",img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},onMenuShareWeibo:function(a){d(o.onMenuShareWeibo,{complete:function(){c("shareWeiboApp",{title:a.title||r,desc:a.desc||"",img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},onMenuShareQZone:function(a){d(o.onMenuShareQZone,{complete:function(){c("shareQZone",{title:a.title||r,desc:a.desc||"",img_url:a.imgUrl||"",link:a.link||location.href},a)}},a)},startRecord:function(a){c("startRecord",{},a)},stopRecord:function(a){c("stopRecord",{},a)},onVoiceRecordEnd:function(a){d("onVoiceRecordEnd",a)},playVoice:function(a){c("playVoice",{localId:a.localId},a)},pauseVoice:function(a){c("pauseVoice",{localId:a.localId},a)},stopVoice:function(a){c("stopVoice",{localId:a.localId},a)},onVoicePlayEnd:function(a){d("onVoicePlayEnd",a)},uploadVoice:function(a){c("uploadVoice",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},downloadVoice:function(a){c("downloadVoice",{serverId:a.serverId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},translateVoice:function(a){c("translateVoice",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},chooseImage:function(a){c("chooseImage",{scene:"1|2",count:a.count||9,sizeType:a.sizeType||["original","compressed"],sourceType:a.sourceType||["album","camera"]},function(){return a._complete=function(a){if(w){var b=a.localIds;b&&(a.localIds=JSON.parse(b))}},a}())},previewImage:function(a){c(o.previewImage,{current:a.current,urls:a.urls},a)},uploadImage:function(a){c("uploadImage",{localId:a.localId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},downloadImage:function(a){c("downloadImage",{serverId:a.serverId,isShowProgressTips:0==a.isShowProgressTips?0:1},a)},getNetworkType:function(a){var b=function(a){var c,d,e,b=a.errMsg;if(a.errMsg="getNetworkType:ok",c=a.subtype,delete a.subtype,c)a.networkType=c;else switch(d=b.indexOf(":"),e=b.substring(d+1)){case"wifi":case"edge":case"wwan":a.networkType=e;break;default:a.errMsg="getNetworkType:fail"}return a};c("getNetworkType",{},function(){return a._complete=function(a){a=b(a)},a}())},openLocation:function(a){c("openLocation",{latitude:a.latitude,longitude:a.longitude,name:a.name||"",address:a.address||"",scale:a.scale||28,infoUrl:a.infoUrl||""},a)},getLocation:function(a){a=a||{},c(o.getLocation,{type:a.type||"wgs84"},function(){return a._complete=function(a){delete a.type},a}())},hideOptionMenu:function(a){c("hideOptionMenu",{},a)},showOptionMenu:function(a){c("showOptionMenu",{},a)},closeWindow:function(a){a=a||{},c("closeWindow",{},a)},hideMenuItems:function(a){c("hideMenuItems",{menuList:a.menuList},a)},showMenuItems:function(a){c("showMenuItems",{menuList:a.menuList},a)},hideAllNonBaseMenuItem:function(a){c("hideAllNonBaseMenuItem",{},a)},showAllNonBaseMenuItem:function(a){c("showAllNonBaseMenuItem",{},a)},scanQRCode:function(a){a=a||{},c("scanQRCode",{needResult:a.needResult||0,scanType:a.scanType||["qrCode","barCode"]},function(){return a._complete=function(a){var b,c;x&&(b=a.resultStr,b&&(c=JSON.parse(b),a.resultStr=c&&c.scan_code&&c.scan_code.scan_result))},a}())},openProductSpecificView:function(a){c(o.openProductSpecificView,{pid:a.productId,view_type:a.viewType||0,ext_info:a.extInfo},a)},addCard:function(a){var e,f,g,h,b=a.cardList,d=[];for(e=0,f=b.length;f>e;++e)g=b[e],h={card_id:g.cardId,card_ext:g.cardExt},d.push(h);c(o.addCard,{card_list:d},function(){return a._complete=function(a){var c,d,e,b=a.card_list;if(b){for(b=JSON.parse(b),c=0,d=b.length;d>c;++c)e=b[c],e.cardId=e.card_id,e.cardExt=e.card_ext,e.isSuccess=e.is_succ?!0:!1,delete e.card_id,delete e.card_ext,delete e.is_succ;a.cardList=b,delete a.card_list}},a}())},chooseCard:function(a){c("chooseCard",{app_id:B.appId,location_id:a.shopId||"",sign_type:a.signType||"SHA1",card_id:a.cardId||"",card_type:a.cardType||"",card_sign:a.cardSign,time_stamp:a.timestamp+"",nonce_str:a.nonceStr},function(){return a._complete=function(a){a.cardList=a.choose_card_info,delete a.choose_card_info},a}())},openCard:function(a){var e,f,g,h,b=a.cardList,d=[];for(e=0,f=b.length;f>e;++e)g=b[e],h={card_id:g.cardId,code:g.code},d.push(h);c(o.openCard,{card_list:d},a)},chooseWXPay:function(a){c(o.chooseWXPay,f(a),a)}},b&&(a.wx=a.jWeixin=E),E});
/*
* 分享组件
* author: <%= author %>
* version: <%= version %>
* website: http://www.431103.com
*/
/*
<div class="paf_share_module"
style=" width: 100%; height: 45px; left: 0; top: 50%;"
data-shareUrl="https://www.431103.com/"
data-shareContent="自定义分享内容,字数控制在20个左右有,超出部分文字不会被显示"
data-shareTitle="自定义分享标题"
data-sharePicUrl="app/images/icon.png"
data-needUid="true"
data-share="true"
onclick="TJ.click('Event_OPSHARE_e79e955a-eacc-4965-af7e-dc791d0797bf')">
</div>
*/
(function($, window, document, undefined) {
// 定义一个插件 Plugin
var pluginName = "share",
defaults = {
title: "分享标题",
desc: "分享描述",
link: "分享链接",
icon: "",
wxApi: "https://mobile.1qianbao.com/mtp-web/h5/op_wechat_generateJsTicket.jsonp",
cmsPagePath: '',
onBefore: null,
onAfter: null
};
// 插件的私有方法
var tools = {
// 非信任域,自动开启调试模式
isDomain: function() {
var url = document.URL;
if (url.match(/1qianbao.com/i) != '1qianbao.com') {
return true;
} else {
return false;
}
},
/*
* 判断浏览器类型
* return wx 代表微信浏览器,1qianbao 代表壹钱包,false 其他浏览器
*/
isBrowser: function() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return 'wx';
} else if (ua.match(/1qianbao/i) == '1qianbao') {
return '1qianbao';
} else
return false;
},
// 截取url路径
getUrlpath: function(L) {
var arr = location.pathname.split('/');
if (L) {
arr.splice(arr.length - 2, arr.length - 1);
} else {
arr.splice(arr.length - 1, arr.length);
}
return location.origin + arr.join('/');
},
// 取出url原始参数
// 获取url参数,支持?#
getUrlParms: function() {
var args = new Object();
var query = location.search.substring(1);
if (query == "") {
query = location.hash.substring(1);
}
var pairs = query.split("&");
for (var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos == -1) continue;
var argname = pairs[i].substring(0, pos);
var value = pairs[i].substring(pos + 1);
args[argname] = unescape(value);
}
return args;
},
getShareParams: function() {
var activityId = this.getUrlParms()['activityId'],
newCustomerId = this.getUrlParms()['newCustomerId'],
mcId = this.getUrlParms()['WT.mc_id'];
var param = ['?activityId=', activityId, '&newCustomerId=', newCustomerId];
return param.join('');
}
};
/**
* 插件实例化部分,初始化时调用的代码可以放这里
* @param element 传入jq对象的选择器,如$("#share_plugin").plugin(),其中$("#share_plugin")既是element
* @param options 插件参数
*/
function Plugin(element, options) {
// 将dom jquery对象赋值给插件,方便后续调用
this.element = $(element);
// 将插件的默认参数及用户定义的参数合并到一个新的obj里
this.settings = $.extend({}, defaults, options);
this.settings.link = this.element.data('shareurl') + tools.getShareParams();
this.settings.title = this.element.data('sharetitle');
this.settings.desc = this.element.data('sharecontent');
// 是相对路径需转换成绝对路径
this.settings.icon = tools.getUrlpath() + this.element.data('sharepicurl');
//初始化调用
this.init();
}
Plugin.prototype = {
init: function() {
var self = this,
$e = self.element;
self._setWeixinSDK();
this.hide();
$e.on('click' + '.' + pluginName, function(e) {
e.preventDefault();
if (tools.isBrowser() == 'wx') {
self.showWeixinTip();
} else {
self.show();
}
e.stopPropagation();
});
},
sharebox: function() {
var self = this;
var wechat = self.settings.cmsPagePath + __uri("/app/images/icon_weixinquan.jpg"),
weixin = self.settings.cmsPagePath + __uri("/app/images/icon_weixin.jpg"),
weibo = self.settings.cmsPagePath + __uri("/app/images/icon_weibo.jpg"),
qzone = self.settings.cmsPagePath + __uri("/app/images/icon_qzone.jpg");
if (!self.share_pop) {
self.share_pop = $(
'<div class="paf-share">' +
'<div class="paf-share-box animated zoomIn">' +
'<div class="paf-share-header">' +
'<button type="button" class="paf-close">' +
'<span>×</span>' + '</button>' + '</div>' +
'<div class="paf-share-body"></div>' +
'<div class="paf-share-footer">' +
'<h4 class="paf-share-title">分享到</h4>' +
'<ul class="paf-share-list">' + '<li id="shareTo_wechat">' +
'<img src="' + wechat + '">朋友圈' +
'</li>' + '<li id="shareTo_wechatFriend">' +
'<img src="' + weixin + '">微信好友' +
'</li>' + '<li id="shareTo_sinaWeibo">' +
'<img src="' + weibo + '">新浪微博' +
'</li>' + '<li id="shareTo_qZone">' +
'<img src="' + qzone + '">QQ空间' +
'</li>' + '</ul>' + '</div>' + '</div><!-- 二维码 -->' + '<div class="paf-qrcode">' +
'<div class="paf-qrcode-content" id="code"></div>' +
'<div class="paf-qrcode-desc">请长按二维码,保存图片后用微信扫描二维码打开!</div>' +
'</div>' +
'</div>'
);
}
return self.share_pop;
},
show: function() {
var self = this,
share_pop = self.sharebox(),
$win = $(window);
// callback
self.settings.onBefore && self.settings.onBefore();
share_pop.css('display', '-webkit-box').hide();
share_pop.find('.paf-share-body').html(self.content());
share_pop.appendTo('body').stop(true, true).fadeIn('500');
self._bindEvent();
},
hide: function() {
var share_pop = this.sharebox();
share_pop.stop(true, true).fadeIn('500');
$(share_pop).remove();
},
content: function() {
var self = this;
var content;
content = '<img class="paf-share-icon" src="' + self.settings.icon + '">' + self.settings.desc;
return content;
},
_bindEvent: function() {
var self = this;
var share_pop = self.sharebox();
// 关闭按钮
share_pop.find('.paf-close').on('click', function(e) {
self.hide();
});
share_pop.find('.paf-share-list li').on('click', function(e) {
var _this = this,
$_this = $(_this),
index = $_this.index();
switch (index) {
case 0:
self.onShareWeixin();
break;
case 1:
self.onShareWechat();
break;
case 2:
self.onShareWeibo();
break;
case 3:
self.onShareQZone();
break;
}
});
},
};
// 分享到QQ
Plugin.prototype.onShareQQ = function() {};
// 分享到QQ空间
Plugin.prototype.onShareQZone = function() {
this._shareQZone();
};
// 分享到微博
Plugin.prototype.onShareWeibo = function() {
this._shareWeibo();
};
// 分享到朋友圈
Plugin.prototype.onShareWechat = function() {
this._shareWechat();
};
// 分享到微信好友
Plugin.prototype.onShareWeixin = function() {
this._shareWeixin();
};
Plugin.prototype._shareQZone = function() {
var self = this;
var type = tools.isBrowser();
switch (type) {
case 'wx':
// 微信内部分享SDK组件
self._getWeixinSDK(3);
break;
case '1qianbao':
// 壹钱包内部分享SDK组件
self._getYiQianBaoSDK(3);
break;
default:
// 其他分享SDK组件
self._getOtherSDK(3);
break;
}
};
Plugin.prototype._shareWeibo = function() {
var self = this;
var type = tools.isBrowser();
switch (type) {
case 'wx':
// 微信内部分享SDK组件
self._getWeixinSDK(2);
break;
case '1qianbao':
// 壹钱包内部分享SDK组件
self._getYiQianBaoSDK(2);
break;
default:
// 其他分享SDK组件
self._getOtherSDK(2);
break;
}
};
Plugin.prototype._shareWechat = function() {
var self = this;
var type = tools.isBrowser();
switch (type) {
case 'wx':
// 微信内部分享SDK组件
self._getWeixinSDK(1);
break;
case '1qianbao':
// 壹钱包内部分享SDK组件
self._getYiQianBaoSDK(1);
break;
default:
// 其他分享SDK组件
self._getOtherSDK(1);
break;
}
};
Plugin.prototype._shareWeixin = function() {
var self = this;
var type = tools.isBrowser();
switch (type) {
case 'wx':
// 微信内部分享SDK组件
self._getWeixinSDK(0);
break;
case '1qianbao':
// 壹钱包内部分享SDK组件
self._getYiQianBaoSDK(0);
break;
default:
// 其他分享SDK组件
self._getOtherSDK(0);
break;
}
};
/*
* 微信内部分享SDK组件
* 0:分享到朋友圈
* 1:分享给朋友
* 2:分享到腾讯微博
* 3: 分享到QQ空间
*/
Plugin.prototype._getWeixinSDK = function(type) {
var self = this;
switch (type) {
case 0:
// 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
wx.onMenuShareTimeline({
title: self.settings.title, // 分享标题
link: self.settings.link, // 分享链接
imgUrl: self.settings.icon, // 分享图标
success: function() {
Agent.customizeEvent('sucWechat', paramsHashMap, '');
},
cancel: function() {
Agent.customizeEvent('failWechat', paramsHashMap, '');
}
});
break;
case 1:
// 获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.onMenuShareAppMessage({
title: self.settings.title, // 分享标题
desc: self.settings.desc, // 分享描述
link: self.settings.link, // 分享链接
imgUrl: self.settings.icon, // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function() {
Agent.customizeEvent('sucWechatFriend', paramsHashMap, '');
},
cancel: function() {
Agent.customizeEvent('failWechatFriend', paramsHashMap, '');
}
});
break;
case 2:
// 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
wx.onMenuShareWeibo({
title: self.settings.title, // 分享标题
desc: self.settings.desc, // 分享描述
link: self.settings.link, // 分享链接
imgUrl: self.settings.icon, // 分享图标
success: function() {
Agent.customizeEvent('sucQQWeibo', paramsHashMap, '');
},
cancel: function() {
Agent.customizeEvent('failQQWeibo', paramsHashMap, '');
}
});
break;
case 3:
// 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口
wx.onMenuShareQZone({
title: self.settings.title, // 分享标题
desc: self.settings.desc, // 分享描述
link: self.settings.link, // 分享链接
imgUrl: self.settings.icon, // 分享图标
success: function() {
// 用户确认分享后执行的回调函数
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
break;
case 4:
// 获取“分享到QQ”按钮点击状态及自定义分享内容接口
wx.onMenuShareQQ({
title: self.settings.title, // 分享标题
desc: self.settings.desc, // 分享描述
link: self.settings.link, // 分享链接
imgUrl: self.settings.icon, // 分享图标
success: function() {
Agent.customizeEvent('sucQQ', paramsHashMap, '');
},
cancel: function() {
Agent.customizeEvent('failQQ', paramsHashMap, '');
}
});
break;
default:
break;
}
};
/*
* 壹钱包内部分享SDK组件
* 0:分享到朋友圈
* 1:分享给朋友
* 2:分享到腾讯微博
* 3: 分享到QQ空间
*/
Plugin.prototype._getYiQianBaoSDK = function(type) {
var self = this;
var url = "ewap://1qianbao/share";
switch (type) {
case 0:
case 1:
url = url + "?to=" + type +
"&wx_url=" + self.settings.link +
"&wx_title=" + self.settings.title +
"&wx_desc=" + self.settings.desc +
"&wx_icon=" + self.settings.icon;
break;
case 2:
url = url + "?to=" + type +
"&wb_content=" + self.settings.desc + self.settings.link +
"&wb_img=" + self.settings.icon;
break;
case 3:
url = url + "?to=" + type +
"&qzone_url=" + self.settings.link +
"&qzone_title=" + self.settings.title +
"&qzone_summary=" + self.settings.desc +
"&qzone_img=" + self.settings.icon;
break;
case 4:
url = type;
break;
}
window.location.href = url;
};
/*
* 其他分享SDK组件
* 0:分享到朋友圈
* 1:分享给朋友
* 2:分享到腾讯微博
* 3: 分享到QQ空间
*/
Plugin.prototype._getOtherSDK = function(type) {
var self = this;
var url = type;
switch (type) {
case 0:
case 1:
$('.paf-qrcode-content').qrcode(this.settings.link);
// var canvas = document.getElementById('canvas');
var canvas = $('.paf-qrcode-content canvas')[0];
$('.paf-qrcode-content').html('<img style="display:inline;" src="'+canvas.toDataURL('image/png')+'">');
$('.paf-qrcode').show();
$('.paf-qrcode').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
$(this).hide();
$('.paf-qrcode-content').html('');
});
return false;
break;
case 2:
url = 'http://service.weibo.com/share/share.php?url=';
url += encodeURIComponent(self.settings.link) + '&title=';
url += encodeURIComponent(self.settings.desc) + '&pic=';
url += self.settings.icon;
url += '&appkey=2992571369';
break;
case 3:
url = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=';
url += encodeURI(self.settings.link) + '&title=';
url += encodeURI(self.settings.title) + '&desc=';
url += encodeURI(self.settings.desc) + '&pics=';
url += self.settings.icon;
break;
}
window.location.href = url;
}
// 发起微信SDK请求
Plugin.prototype._setWeixinSDK = function() {
var type = tools.isBrowser();
if (type != 'wx') return;
var self = this;
var url = self.settings.wxApi + '?url=' + encodeURIComponent(window.location.href.split('#')[0]);
$.ajax({
url: url,
dataType: 'jsonp',
contentType: "application/json",
success: function(data) {
// 通过config接口注入权限验证配置
wx.config({
debug: tools.isDomain(), // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.appid, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名
jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ", "onMenuShareWeibo"] // 必填,需要使用的JS接口列表
});
wx.ready(function() {
// 分享到朋友圈
self._getWeixinSDK(0);
// 分享给朋友
self._getWeixinSDK(1);
// 分享到腾讯微博
self._getWeixinSDK(2);
// 分享到QQ空间
self._getWeixinSDK(3);
// 分享到QQ
self._getWeixinSDK(4);
});
wx.error(function() {
console.log("\u5FAE\u4FE1\u4E0D\u548C\u6211\u4EEC\u73A9\u4E86\uFF0C\u600E\u4E48\u529E\3F");
});
},
error: function(data) {
console.log("\u670D\u52A1\u5668\u751F\u6C14\u4E86\uFF0C\u4E0D\u548C\u5FAE\u4FE1\u73A9\u800D\u4E86\21");
}
});
};
Plugin.prototype.showWeixinTip = function() {
var tipIMG = this.settings.cmsPagePath + __uri('/app/images/wechat-tip.png');
var tips = $('<div><img src="' + tipIMG + '" width="100%"></div>').css({
'position': 'fixed',
'left': '0',
'top': '0',
'bottom': '0',
'right': '0',
'zIndex': '999',
'backgroundColor': 'rgba(0,0,0,.7)',
'backgroundRepeat': 'no-repeat',
'backgroundSize': 'contain'
});
$('body').append(tips).click(function() {
tips.remove();
});
};
$[pluginName] = $.fn[pluginName] = function(options) {
var args = arguments;
if (options === undefined || typeof options === 'object') {
if (!(this instanceof $)) {
$.extend(defaults, options);
}
return this.each(function() {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName, new Plugin(this, options));
}
});
if (!$.data(this, 'plugin_' + pluginName)) {
return $.data(this, 'plugin_' + pluginName, new Plugin(this, options));
}
} else if (typeof options === 'string' && options[0] !== '_' && options !==
'init') {
var returns;
this.each(function() {
var instance = $.data(this, 'plugin_' + pluginName);
if (!instance) {
instance = $.data(this, 'plugin_' + pluginName, new Plugin(
this, options));
}
if (instance instanceof Plugin && typeof instance[options] ===
'function') {
returns = instance[options].apply(instance, Array.prototype.slice
.call(args, 1));
}
if (options === 'destroy') {
$.data(this, 'plugin_' + pluginName, null);
}
});
return returns !== undefined ? returns : this;
}
};
$(function() {
return new Plugin($('[data-share]'));
});
})(jQuery, window, document);