123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- var WeixinApi = (function () {
- "use strict";
- function weixinShareTimeline(data, callbacks) {
- callbacks = callbacks || {};
- var shareTimeline = function (theData) {
- WeixinJSBridge.invoke('shareTimeline', {
- "appid":theData.appId ? theData.appId : '',
- "img_url":theData.imgUrl,
- "link":theData.link,
- "desc":theData.title,
- "title":theData.desc, // 注意这里要分享出去的内容是desc
- "img_width":"120",
- "img_height":"120"
- }, function (resp) {
- switch (resp.err_msg) {
- // share_timeline:cancel 用户取消
- case 'share_timeline:cancel':
- callbacks.cancel && callbacks.cancel(resp);
- break;
- // share_timeline:fail 发送失败
- case 'share_timeline:fail':
- callbacks.fail && callbacks.fail(resp);
- break;
- // share_timeline:confirm 发送成功
- case 'share_timeline:confirm':
- case 'share_timeline:ok':
- callbacks.confirm && callbacks.confirm(resp);
- break;
- }
- // 无论成功失败都会执行的回调
- callbacks.all && callbacks.all(resp);
- });
- };
- WeixinJSBridge.on('menu:share:timeline', function (argv) {
- if (callbacks.async && callbacks.ready) {
- window["_wx_loadedCb_"] = callbacks.dataLoaded || new Function();
- if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_") > 0) {
- window["_wx_loadedCb_"] = new Function();
- }
- callbacks.dataLoaded = function (newData) {
- window["_wx_loadedCb_"](newData);
- shareTimeline(newData);
- };
- // 然后就绪
- callbacks.ready && callbacks.ready(argv);
- } else {
- // 就绪状态
- callbacks.ready && callbacks.ready(argv);
- shareTimeline(data);
- }
- });
- }
- function weixinSendAppMessage(data, callbacks) {
- callbacks = callbacks || {};
- var sendAppMessage = function (theData) {
- WeixinJSBridge.invoke('sendAppMessage', {
- "appid":theData.appId ? theData.appId : '',
- "img_url":theData.imgUrl,
- "link":theData.link,
- "desc":theData.desc,
- "title":theData.title,
- "img_width":"120",
- "img_height":"120"
- }, function (resp) {
- switch (resp.err_msg) {
- // send_app_msg:cancel 用户取消
- case 'send_app_msg:cancel':
- callbacks.cancel && callbacks.cancel(resp);
- break;
- // send_app_msg:fail 发送失败
- case 'send_app_msg:fail':
- callbacks.fail && callbacks.fail(resp);
- break;
- // send_app_msg:confirm 发送成功
- case 'send_app_msg:confirm':
- case 'send_app_msg:ok':
- callbacks.confirm && callbacks.confirm(resp);
- break;
- }
- callbacks.all && callbacks.all(resp);
- });
- };
- WeixinJSBridge.on('menu:share:appmessage', function (argv) {
- if (callbacks.async && callbacks.ready) {
- window["_wx_loadedCb_"] = callbacks.dataLoaded || new Function();
- if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_") > 0) {
- window["_wx_loadedCb_"] = new Function();
- }
- callbacks.dataLoaded = function (newData) {
- window["_wx_loadedCb_"](newData);
- sendAppMessage(newData);
- };
- // 然后就绪
- callbacks.ready && callbacks.ready(argv);
- } else {
- // 就绪状态
- callbacks.ready && callbacks.ready(argv);
- sendAppMessage(data);
- }
- });
- }
- function weixinShareWeibo(data, callbacks) {
- callbacks = callbacks || {};
- var shareWeibo = function (theData) {
- WeixinJSBridge.invoke('shareWeibo', {
- "content":theData.desc,
- "url":theData.link
- }, function (resp) {
- switch (resp.err_msg) {
- case 'share_weibo:cancel':
- callbacks.cancel && callbacks.cancel(resp);
- break;
- case 'share_weibo:fail':
- callbacks.fail && callbacks.fail(resp);
- break;
- case 'share_weibo:confirm':
- case 'share_weibo:ok':
- callbacks.confirm && callbacks.confirm(resp);
- break;
- }
- callbacks.all && callbacks.all(resp);
- });
- };
- WeixinJSBridge.on('menu:share:weibo', function (argv) {
- if (callbacks.async && callbacks.ready) {
- window["_wx_loadedCb_"] = callbacks.dataLoaded || new Function();
- if(window["_wx_loadedCb_"].toString().indexOf("_wx_loadedCb_") > 0) {
- window["_wx_loadedCb_"] = new Function();
- }
- callbacks.dataLoaded = function (newData) {
- window["_wx_loadedCb_"](newData);
- shareWeibo(newData);
- };
- callbacks.ready && callbacks.ready(argv);
- } else {
- callbacks.ready && callbacks.ready(argv);
- shareWeibo(data);
- }
- });
- }
- function imagePreview(curSrc,srcList) {
- if(!curSrc || !srcList || srcList.length == 0) {
- return;
- }
- WeixinJSBridge.invoke('imagePreview', {
- 'current' : curSrc,
- 'urls' : srcList
- });
- }
- function showOptionMenu() {
- WeixinJSBridge.call('showOptionMenu');
- }
- function hideOptionMenu() {
- WeixinJSBridge.call('hideOptionMenu');
- }
- function showToolbar() {
- WeixinJSBridge.call('showToolbar');
- }
- function hideToolbar() {
- WeixinJSBridge.call('hideToolbar');
- }
- function getNetworkType(callback) {
- if (callback && typeof callback == 'function') {
- WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
- callback(e.err_msg);
- });
- }
- }
- function closeWindow() {
- WeixinJSBridge.call("closeWindow");
- }
- function wxJsBridgeReady(readyCallback) {
- if (readyCallback && typeof readyCallback == 'function') {
- var Api = this;
- var wxReadyFunc = function () {
- readyCallback(Api);
- };
- if (typeof window.WeixinJSBridge == "undefined"){
- if (document.addEventListener) {
- document.addEventListener('WeixinJSBridgeReady', wxReadyFunc, false);
- } else if (document.attachEvent) {
- document.attachEvent('WeixinJSBridgeReady', wxReadyFunc);
- document.attachEvent('onWeixinJSBridgeReady', wxReadyFunc);
- }
- }else{
- wxReadyFunc();
- }
- }
- }
- return {
- version :"1.8",
- ready :wxJsBridgeReady,
- shareToTimeline :weixinShareTimeline,
- shareToWeibo :weixinShareWeibo,
- shareToFriend :weixinSendAppMessage,
- showOptionMenu :showOptionMenu,
- hideOptionMenu :hideOptionMenu,
- showToolbar :showToolbar,
- hideToolbar :hideToolbar,
- getNetworkType :getNetworkType,
- imagePreview :imagePreview,
- closeWindow :closeWindow
- };
- })();
|