(function() { var wxapi = "//res.wx.qq.com/open/js/jweixin-1.0.0.js", qqapi = "//open.mobile.qq.com/sdk/qqapi.js?_bid=152", qzapi = "//qzonestyle.gtimg.cn/qzone/phone/m/v4/widget/mobile/jsbridge.js?_bid=339"; var require; function _require(url, onload) { var doc = document; var head = doc.head || (doc.getelementsbytagname("head")[0] || doc.documentelement); var node = doc.createelement("script"); node.onload = onload; node.onerror = function() { }; node.async = true; node.src = url[0]; head.appendchild(node); } function _initwx(data) { if (!data.wxconfig) { return; } require([wxapi], function(wx) { if (!wx.config) { wx = window.wx; } var conf = data.wxconfig; wx.config({debug:false, appid:conf.appid, timestamp:conf.timestamp, noncestr:conf.noncestr, signature:conf.signature, jsapilist:["onmenusharetimeline", "onmenushareappmessage", "onmenushareqq", "onmenushareqzone"]}); wx.error(function(res) { }); wx.ready(function() { var config = {title:data.title, desc:data.summary, link:data.url, imgurl:data.pic, type:"", dataurl:"", success:function() { data.callback && data.callback(); }, cancel:function() { }}; wx.onmenushareappmessage(config); wx.onmenushareqq(config); wx.onmenushareqzone(config); if (conf.swaptitleinwx) { wx.onmenusharetimeline({title:data.summary, desc:data.title, link:data.url, imgurl:data.pic, type:"", dataurl:"", success:function() { data.callback && data.callback(); }, cancel:function() { }}); } else { wx.onmenusharetimeline(config); } }); }); } function _initqq(data) { var info = {title:data.title, desc:data.summary, share_url:data.url, image_url:data.pic}; function doqqshare() { try { if (data.callback) { window.mqq.ui.setonsharehandler(function(type) { if (type == 3 && (data.swaptitle || data.wxconfig && data.wxconfig.swaptitleinwx)) { info.title = data.summary; } else { info.title = data.title; } info.share_type = type; info.back = true; window.mqq.ui.sharemessage(info, function(result) { if (result.retcode === 0) { data.callback && data.callback.call(this, result); } }); }); } else { window.mqq.data.setshareinfo(info); } } catch (e) { } } if (window.mqq) { doqqshare(); } else { require([qqapi], function() { doqqshare(); }); } } function _initqz(data) { function doqzshare() { if (qzappexternal && qzappexternal.setshare) { var imagearr = [], titlearr = [], summaryarr = [], shareurlarr = []; for (var i = 0;i < 5;i++) { imagearr.push(data.pic); shareurlarr.push(data.url); if (i === 4 && (data.swaptitle || data.wxconfig && data.wxconfig.swaptitleinwx)) { titlearr.push(data.summary); summaryarr.push(data.title); } else { titlearr.push(data.title); summaryarr.push(data.summary); } } qzappexternal.setshare(function(data) { }, {"type":"share", "image":imagearr, "title":titlearr, "summary":summaryarr, "shareurl":shareurlarr}); } } if (window.qzappexternal) { doqzshare(); } else { require([qzapi], function() { doqzshare(); }); } } function init(opts) { var ua = navigator.useragent; var iswx = ua.match(/micromessenger\/([\d\.]+)/), isqq = ua.match(/qq\/([\d\.]+)/), isqz = ua.indexof("qzone/") !== -1; iswx && _initwx(opts); isqq && _initqq(opts); isqz && _initqz(opts); } if (typeof define === "function" && (define.cmd || define.amd)) { if (define.cmd) { require = seajs.use; } else { if (define.amd) { require = window.require; } } define(function() { return init; }); } else { require = _require; window.setshareinfo = init; } })();