123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- function WX_share(b,c,d,e){var f=navigator.userAgent,g=-1<f.indexOf("Android")||-1<f.indexOf("Adr");f.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)&&(function(a){window.WebViewJavascriptBridge?a(WebViewJavascriptBridge):document.addEventListener("WebViewJavascriptBridgeReady",function(){a(WebViewJavascriptBridge)},!1)}(function(a){a.init(function(a,b){alert("Received message: "+a);b&&b("Right back atcha")});a.send({url:b,typeid:8,depict:c,title:d,picture:e});a.send("Please respond to this",function(a){alert("Javascript got its response",
- a)})}),window.webkit.messageHandlers.JS_Call_OC_login.postMessage({url:b,typeid:8,depict:c,title:d,picture:e}));g&&Android.share(b,c,d,e)};
- ;(function($, window, document, undefined) {
- function regist(mName, module) {
- if (typeof window.brickjs === "undefined") {
- window.brickjs = {};
- }
- brickjs[mName] = module;
- }
- ;/**
- * @file 微信,微博分享
- * @author jie.qin@condenast.com.cn
- * @version 0.1.0
- * @requires http://js.selfimg.com.cn/jquery/jquery-1.7.1.min.js|http://js.selfimg.com.cn/gallery/zepto/1.1.4/zepto.min.js
- * @requires http://js.selfimg.com.cn/lib/jweixin-1.0.0.js
- * @example <a href="../mshare/examples/demo.html">demo.html</a>
- * @see http://js.selfimg.com.cn/brickjs/mshare/0.1.0/mshare.min.js
- */
- var isWeixin = navigator.userAgent.toLowerCase().indexOf("micromessenger") > -1;
- //isWeixin = true;
- /**
- * 微信,微博分享定义组件。(微博分享功能,可以在按钮上配置属性实现动态替换分享属性,属性名称:data-desc,data-sUrl,data-imgUrl)
- * @class
- * @author jie.qin@condenast.com.cn
- * @version 0.1.0
- * @requires http://js.selfimg.com.cn/jquery/jquery-1.7.1.min.js|http://js.selfimg.com.cn/gallery/zepto/1.1.4/zepto.min.js
- * @requires http://js.selfimg.com.cn/lib/jweixin-1.0.0.js
- * @example <a href="../mshare/examples/demo.html">demo.html</a>
- * @see http://js.selfimg.com.cn/brickjs/mshare/0.1.0/mshare.min.js
- * @param {Object} cfgs 配置项
- * @param {String} [cfgs.site=""] 1、vogue 2、self 3、gq 4、adstyle 5、cnt 6、subscribe (必须,用于微信获得签名和统计使用)
- * @param {String} [cfgs.catalog=""] 栏目id(仅对微博有效)
- * @param {String} [cfgs.sUrl=window.location.href] 分享地址url
- * @param {String} [cfgs.title=document.title] 分享标题(仅对微信有效,微博分享使用desc)
- * @param {String} [cfgs.desc=""] 分享说明
- * @param {String} [cfgs.imgUrl=""] 分享时携带图片地址
- * @param {String} [cfgs.ralateUid=""] (仅对微博有效)
- * @param {String} [cfgs.timelineCallback] 分享到朋友圈回调(仅对微信有效)
- * @param {String} [cfgs.sendMessageCallback] 发送给朋友回调(仅对微信有效)
- * @param {String} [cfgs.appKey] 分享到微信和微博对应的appkey
- * @param {String} [cfgs.appKey.tsina] 分享到微博对应的appkey
- * @param {String} [cfgs.wxGuide] 分享到微信引导(仅对微信有效)
- * @param {String} [cfgs.wxGuide.tpl] 分享到微信引导弹层自定义模板
- * @param {String} [cfgs.wxGuide.imgUrl] 分享到微信引导图片地址
- * @param {String} [cfgs.wxGuide.width] 分享到微信引导图片宽度
- * @param {String} [cfgs.wxGuide.height] 分享到微信引导图片高度
- * @param {Object} [cfgs.wxGuide.style={top:0,right:0}] 分享到微信引导弹层样式
- * @param {Object} selector 绑定的对象
- */
- function MShare(cfgs, selector) {
- this._cfgs = {
- site: "",
- catalog: "",
- sUrl: window.location.href,
- title: document.title,
- imgUrl: "",
- desc: "",
- appKey: "",
- ralateUid: "",
- source_id:"",
- source_table :"",
- timelineCallback: function() {},
- sendMessageCallback: function() {},
- shareQQCallback: function() {},
- wxGuide: {
- tpl: '',
- imgUrl: 'http://css.selfimg.com.cn/vogue/mdiscovery/images/weixin-guide.png',
- width: 295,
- height: 273,
- style: {
- right: 0,
- top: 0
- }
- }
- };
- this.weixinSigned = 0;
- this.trigger = $(selector);
- this._baseUrl = "/collect.";
- this._tsinaParam = "get?platform=tsina&title={title}&url={url}&pic={pic}&site={site}&source_id={source_id}&source_table={source_table}&ralateUid={ralateUid}&appkey={appkey}&hash={hash}";
- this._init(cfgs, selector);
- this._reflux();
- }
- MShare.prototype = {
- _init: function(cfgs, selector) {
- var self = this;
- $.extend(true, this._cfgs, cfgs)
- if (selector) {
- $(selector).on('click', function() {
- if (isWeixin) {
- self._weixinGuide();
- } else {
- self._weiboShare($(this));
- }
- })
- }
- if (isWeixin) {
- this.weixinInit();
- }
- },
- _weixinGuide: function() {
- var cfg = this._cfgs,
- weixinCfg = cfg.wxGuide,
- defImg = weixinCfg.imgUrl,
- tpl = weixinCfg.tpl || '<div id="weixin_guide" style="position: fixed;background:url(http://css.selfimg.com.cn/cnt/mobile/images/blk80.png) repeat;left:0;top:0;right:0;bottom:0;z-index:1000;"><img src="' + defImg + '" style="position: absolute;z-index:100;" width="' + weixinCfg.width + '" height="' + weixinCfg.height + '"/></div>';
- $('#weixin_guide').remove();
- $(tpl).attr('id', 'weixin_guide').appendTo($('body'));
- $('#weixin_guide img').css(weixinCfg.style || {})
- setTimeout(function() {
- $('#weixin_guide').click(function() {
- $(this).remove();
- })
- }, 300)
- },
- /**
- * 对微信分享自定义配置
- * @param {Object} cfgs 配置项
- * @param {String} [cfgs.site=""] 1、vogue 2、self 3、gq 4、adstyle 5、cnt 6、subscribe(必须,用于微信获得签名和统计使用)
- * @param {String} [cfgs.sUrl=window.location.href] 分享地址url
- * @param {String} [cfgs.title=document.title] 分享标题
- * @param {String} [cfgs.desc=""] 分享说明
- * @param {String} [cfgs.imgUrl=""] 分享时携带图片地址
- * @param {String} [cfgs.timelineCallback] 分享到朋友圈回调
- * @param {String} [cfgs.sendMessageCallback] 发送给朋友回调
- * @param {String} [cfgs.shareQQCallback] 发送到QQ回调
- */
- weixinInit: function(cfgs) {
- var self = this,
- wxCfgs;
- cfgs && $.extend(true, this._cfgs, cfgs);
- wxCfgs = {
- "site": this._cfgs.website,
- "img_url": this._cfgs.imgUrl || "",
- "link": this._cfgs.sUrl || location.href,
- "desc": this._cfgs.desc || "",
- "title": this._cfgs.title || document.title,
- timelineCallback: this._cfgs.timelineCallback,
- sendMessageCallback: this._cfgs.sendMessageCallback,
- shareQQCallback: this._cfgs.shareQQCallback
- }
- //var url = VG.conf.root_domain + '?c=WeixinJsSDK&a=AjaxConfigData&site=' + wxCfgs.site + '&thisPageUrl=' + encodeURIComponent(location.href) + '&callback=?';
- var url = VG.conf.root_domain + '?c=WeixinJsSDK&a=AjaxConfigData&thisPageUrl=' + location.href.split('#')[0];
- var state = false;
- if (location.href.indexOf('test') > -1) {
- var state = true;
- }
- //alert(url)
- $.ajax({
- type:'post',
- dataType:'jsonp',
- jsonp: 'jsonp_cb',
- url: url,
- data: {"thisPageUrl":location.href.split('#')[0]},
- success:function(data){
- var d = data.msg;
- //alert(d.appId)
- wx.config({
- //debug:true,
- appId: d.appId,
- timestamp: d.timestamp,
- nonceStr: d.nonceStr,
- signature: d.signature,
- jsApiList: [
- 'onMenuShareTimeline',
- 'onMenuShareAppMessage',
- 'onMenuShareQQ'
- ]
- });
- //alert(wxCfgs.link);
- wx.ready(function() {
- //alert(wxCfgs.img_url)
- if (state) {
- //alert(wxCfgs.img_url);
- }
- //alert(wxCfgs.link);
- wx.onMenuShareAppMessage({
- title: wxCfgs.title,
- desc: wxCfgs.desc,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- if (state) {
- alert(1);
- }
- wxCfgs.sendMessageCallback('success', res)
- self._shareLog(0, 1);
- },
- cancel: function(res) {
- if (state) {
- alert(2);
- }
- wxCfgs.sendMessageCallback('cancel', res)
- self._shareLog(0, 2);
- },
- fail: function(res) {
- if (state) {
- alert(3);
- }
- wxCfgs.sendMessageCallback('fail', res)
- self._shareLog(0, 0);
- }
- });
- wx.onMenuShareTimeline({
- title: wxCfgs.title,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- if (state) {
- alert(1);
- }
- wxCfgs.timelineCallback('success', res)
- self._shareLog(1, 1);
- },
- cancel: function(res) {
- if (state) {
- alert(2);
- }
- wxCfgs.timelineCallback('cancel', res)
- self._shareLog(1, 2);
- },
- fail: function(res) {
- if (state) {
- alert(3);
- }
- wxCfgs.timelineCallback('fail', res)
- self._shareLog(1, 0);
- }
- });
- wx.onMenuShareQQ({
- title: wxCfgs.title,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- wxCfgs.shareQQCallback('success', res)
- self._shareLog(2, 1);
- },
- cancel: function(res) {
- wxCfgs.shareQQCallback('cancel', res)
- self._shareLog(2, 2);
- },
- fail: function(res) {
- wxCfgs.shareQQCallback('fail', res)
- self._shareLog(2, 0);
- }
- });
- });
- },
- async:'true',
- timeout: 3000
- });
- /*
- $.getJSON(VG.conf.root_domain + '?c=WeixinJsSDK&a=AjaxConfigData&site=' + wxCfgs.site + '&thisPageUrl=' + encodeURIComponent(location.href) + '&callback=?', function(d) {
- var d = d.msg;
- if (d) {
- wx.config({
- //debug:true,
- appId: d.appId,
- timestamp: d.timestamp,
- nonceStr: d.nonceStr,
- signature: d.signature,
- jsApiList: [
- 'onMenuShareTimeline',
- 'onMenuShareAppMessage',
- 'onMenuShareQQ'
- ]
- });
- wx.ready(function() {
- wx.onMenuShareAppMessage({
- title: wxCfgs.title,
- desc: wxCfgs.desc,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- wxCfgs.sendMessageCallback('success', res)
- self._shareLog(0, 1);
- },
- cancel: function(res) {
- wxCfgs.sendMessageCallback('cancel', res)
- self._shareLog(0, 2);
- },
- fail: function(res) {
- wxCfgs.sendMessageCallback('fail', res)
- self._shareLog(0, 0);
- }
- });
- wx.onMenuShareTimeline({
- title: wxCfgs.title,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- wxCfgs.timelineCallback('success', res)
- self._shareLog(1, 1);
- },
- cancel: function(res) {
- wxCfgs.timelineCallback('cancel', res)
- self._shareLog(1, 2);
- },
- fail: function(res) {
- wxCfgs.timelineCallback('fail', res)
- self._shareLog(1, 0);
- }
- });
- wx.onMenuShareQQ({
- title: wxCfgs.title,
- link: wxCfgs.link,
- imgUrl: wxCfgs.img_url,
- success: function(res) {
- wxCfgs.shareQQCallback('success', res)
- self._shareLog(2, 1);
- },
- cancel: function(res) {
- wxCfgs.shareQQCallback('cancel', res)
- self._shareLog(2, 2);
- },
- fail: function(res) {
- wxCfgs.shareQQCallback('fail', res)
- self._shareLog(2, 0);
- }
- });
- });
- }
- })
- */
-
- },
- /**
- * 重置分享自定义配置
- * @param {Object} cfg 自定义配置对象
- * @param {String} [cfg.sUrl=window.location.href] 分享地址url
- * @param {String} [cfg.title=document.title] 分享标题
- * @param {String} [cfg.desc=""] 分享说明
- * @param {String} [cfg.imgUrl] 分享时携带图片地址
- */
- reset: function(cfg) {
- var self = this;
- if (!isWeixin) {
- cfg.sUrl && self.trigger.data('sUrl', cfg.sUrl);
- cfg.desc && self.trigger.data('desc', cfg.desc);
- cfg.imgUrl && self.trigger.data("imgUrl", cfg.imgUrl);
- } else {
- this.weixinInit({
- sUrl: cfg.sUrl || self._cfgs.sUrl,
- desc: cfg.desc || self._cfgs.desc,
- imgUrl: cfg.imgUrl || self._cfgs.imgUrl,
- title: cfg.title || self._cfgs.title
- });
- }
- },
- _reflux: function() {
- var refer = document.referrer,
- url = document.location.href,
- param = location.search.substr(1),
- ua = navigator.userAgent;
- if (param.indexOf("tsina-") > -1 || param.indexOf("timeline") > -1 || param.indexOf("singlemessage") > -1 || param.indexOf("groupmessage") > -1) {
- $.getJSON(this._baseUrl + "reflux?" + "callback=?" + "&url=" + encodeURIComponent(url) + '&ua=' + ua + '¶m=' + encodeURIComponent(param));
- }
- },
- _shareLog: function(actType, actResult) {
- var site = this._cfgs.website;
- //$.get('http://application.self.com.cn/wxapi/interface/sharecollect/collectdata?mp=' + site + '&url=' + encodeURIComponent(location.href) + '&ac=' + actType + '&sc=' + actResult + '&ua=' + encodeURIComponent(navigator.userAgent))
- },
- _weiboShare: function(trigger) {
- var self = this;
- var cfg = this._cfgs,
- params = {
- title: cfg.desc,
- url: cfg.sUrl,
- pic: cfg.imgUrl,
- site: cfg.site,
- cat: cfg.catalog,
- source_id: cfg.source_id,
- source_table: cfg.source_table,
- ralateUid: cfg.ralateUid,
- appkey: cfg.appKey.tsina
- },
- tgUrl = trigger.data('sUrl'),
- tgTitle = trigger.data('desc'),
- tgPic = trigger.data("imgUrl");
- params.title = encodeURIComponent(tgTitle ? tgTitle : params.title);
- params.url = encodeURIComponent(tgUrl ? tgUrl : params.url);
- params.pic = encodeURIComponent(tgPic ? tgPic : params.pic);
- var cmdUrl = this._baseUrl + self._formatUri(this._tsinaParam, params);
- window.open(cmdUrl);
- },
- _formatUri: function(uri, params) {
- var reg, uri = uri;
- for (var k in params) {
- reg = new RegExp("{" + k + "}", "g");
- uri = uri.replace(reg, params[k]);
- }
- return uri;
- }
- }
- ;regist("MShare",MShare);
- })((typeof Zepto !== 'undefined' ? Zepto : jQuery), window, document)
|