以前微信分享一直正常可用,可最近報出微信分享後不能按規定的圖片描述連接分享,並且不能產生回調致使不能經過分享增長用戶參與活動次數,老代碼以下:php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
document.addEventListener(
'WeixinJSBridgeReady'
, function onBridgeReady() {
window.shareData = {
"imgUrl"
:
"{$shareimg}"
,
"timeLineLink"
:
"{$sharelink}"
,
"sendFriendLink"
:
"{$sharelink}"
,
"weiboLink"
:
"{$sharelink}"
,
"tTitle"
:
"{$sharetitle}"
,
"tContent"
:
"{$sharedesc}"
,
"fTitle"
:
"{$sharetitle}"
,
"fContent"
:
"{$sharedesc}"
,
"wContent"
:
"{$sharedesc}"
,
};
/*發送給好友*/
WeixinJSBridge.on(
'menu:share:appmessage'
, function (argv) {
WeixinJSBridge.invoke(
'sendAppMessage'
, {
"img_url"
: window.shareData.imgUrl,
"img_width"
:
"640"
,
"img_height"
:
"640"
,
"link"
: window.shareData.sendFriendLink,
"desc"
: window.shareData.fContent,
"title"
: window.shareData.fTitle
}, function (res) {
if
(res.err_msg ==
'send_app_msg:ok'
|| res.err_msg ==
'send_app_msg:confirm'
){
//轉發成功
$.ajax({
type:
'POST'
,
url:
"{php echo $this->createMobileUrl('setadd', array('id' => $id))}"
,
//data: {"id":0},
dataType:
'json'
,
success: function(e) {
alert(e.msg);
if
(e.success!=
0
){
$(
"#lcount"
).text(e.success);
}
return
true
;
},
error: function(e, t) {
return
false
;
}
});
};
_report(
'send_msg'
, res.err_msg);
})
});
//分享到朋友圈
WeixinJSBridge.on(
'menu:share:timeline'
, function (argv) {
WeixinJSBridge.invoke(
'shareTimeline'
, {
"img_url"
: window.shareData.imgUrl,
"img_width"
:
"640"
,
"img_height"
:
"640"
,
"link"
: window.shareData.timeLineLink,
"desc"
: window.shareData.tContent,
"title"
: window.shareData.tTitle
}, function (res) {
if
(res.err_msg ==
'share_timeline:ok'
|| res.err_msg ==
'share_timeline:confirm'
){
//轉發成功
$.ajax({
type:
'POST'
,
url:
"{php echo $this->createMobileUrl('setadd', array('id' => $id))}"
,
//data: {"id":0},
dataType:
'json'
,
success: function(e) {
alert(e.msg);
if
(e.success!=
0
){
$(
"#lcount"
).text(e.success);
}
return
true
;
},
error: function(e, t) {
return
false
;
}
});
};
_report(
'timeline'
, res.err_msg);
});
});
//分享到微博
WeixinJSBridge.on(
'menu:share:weibo'
, function (argv) {
WeixinJSBridge.invoke(
'shareWeibo'
, {
"content"
: window.shareData.wContent,
"url"
: window.shareData.weiboLink,
}, function (res) {
_report(
'weibo'
, res.err_msg);
});
});
},
false
)
|
網上查找資料發現,騰訊爲打擊誘導分享可能作了一些改動html
在github上找到了民間高手發佈的weixinAPI,實踐證實可用可行,代碼以下:java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
|
/**!
* 微信內置瀏覽器的Javascript API,功能包括:
*
* 一、分享到微信朋友圈
* 二、分享給微信好友
* 三、分享到騰訊微博
* 四、隱藏/顯示右上角的菜單入口
* 五、隱藏/顯示底部瀏覽器工具欄
* 六、獲取當前的網絡狀態
* 七、調起微信客戶端的圖片播放組件
* 八、關閉公衆平臺Web頁面
* 九、判斷當前網頁是否在微信內置瀏覽器中打開
* 十、支持WeixinApi的錯誤監控
* 十一、發送電子郵件
* 十二、禁止用戶分享
*
* @author zhaoxianlie(http://www.baidufe.com)
*/
(function (window) {
"use strict"
;
/**
* 定義WeixinApi
*/
var WeixinApi = {
version:
4.3
};
// 將WeixinApi暴露到window下:全局可以使用,對舊版本向下兼容
window.WeixinApi = WeixinApi;
/////////////////////////// CommonJS /////////////////////////////////
if
(typeof define ===
'function'
&& (define.amd || define.cmd)) {
if
(define.amd) {
// AMD 規範,for:requirejs
define(function () {
return
WeixinApi;
});
}
else
if
(define.cmd) {
// CMD 規範,for:seajs
define(function (require, exports, module) {
module.exports = WeixinApi;
});
}
}
/**
* 對象簡單繼承,後面的覆蓋前面的,繼承深度:deep=1
* @private
*/
var _extend = function () {
var result = {}, obj, k;
for
(var i =
0
, len = arguments.length; i < len; i++) {
obj = arguments[i];
if
(typeof obj ===
'object'
) {
for
(k in obj) {
obj[k] && (result[k] = obj[k]);
}
}
}
return
result;
};
/**
* 內部私有方法,分享用
* @private
*/
var _share = function (cmd, data, callbacks) {
callbacks = callbacks || {};
// 分享過程當中的一些回調
var progress = function (resp) {
switch
(
true
) {
// 用戶取消
case
/\:cancel$/i.test(resp.err_msg) :
callbacks.cancel && callbacks.cancel(resp);
break
;
// 發送成功
case
/\:(confirm|ok)$/i.test(resp.err_msg):
callbacks.confirm && callbacks.confirm(resp);
break
;
// fail 發送失敗
case
/\:fail$/i.test(resp.err_msg) :
default
:
callbacks.fail && callbacks.fail(resp);
break
;
}
// 不管成功失敗都會執行的回調
callbacks.all && callbacks.all(resp);
};
// 執行分享,並處理結果
var handler = function (theData, argv) {
// 加工一下數據
if
(cmd.menu ==
'menu:share:timeline'
||
(cmd.menu ==
'general:share'
&& argv.shareTo ==
'timeline'
)) {
var title = theData.title;
theData.title = theData.desc || title;
theData.desc = title || theData.desc;
}
// 若是是收藏操做,而且在wxCallbacks中配置了favorite爲false,則不執行回調
if
(argv && (argv.shareTo ==
'favorite'
|| argv.scene ==
'favorite'
)) {
if
(callbacks.favorite ===
false
) {
WeixinJSBridge.invoke(
'sendAppMessage'
, theData,
new
Function());
}
else
{
WeixinJSBridge.invoke(cmd.action, theData, progress);
}
}
else
{
// 新的分享接口,單獨處理
if
(cmd.menu ===
'general:share'
) {
if
(argv.shareTo ===
'timeline'
) {
WeixinJSBridge.invoke(
'shareTimeline'
, theData, progress);
}
else
if
(argv.shareTo ===
'friend'
) {
WeixinJSBridge.invoke(
'sendAppMessage'
, theData, progress);
}
else
if
(argv.shareTo ===
'QQ'
) {
WeixinJSBridge.invoke(
'shareQQ'
, theData, progress);
}
else
if
(argv.shareTo ===
'weibo'
) {
WeixinJSBridge.invoke(
'shareWeibo'
, theData, progress);
}
}
else
{
WeixinJSBridge.invoke(cmd.action, theData, progress);
}
}
};
// 監聽分享操做
WeixinJSBridge.on(cmd.menu, function (argv) {
callbacks.dataLoaded = callbacks.dataLoaded ||
new
Function();
if
(callbacks.async && callbacks.ready) {
WeixinApi[
"_wx_loadedCb_"
] = callbacks.dataLoaded;
if
(WeixinApi[
"_wx_loadedCb_"
].toString().indexOf(
"_wx_loadedCb_"
) >
0
) {
WeixinApi[
"_wx_loadedCb_"
] =
new
Function();
}
callbacks.dataLoaded = function (newData) {
callbacks.__cbkCalled =
true
;
var theData = _extend(data, newData);
theData.img_url = theData.imgUrl || theData.img_url;
delete theData.imgUrl;
WeixinApi[
"_wx_loadedCb_"
](theData);
handler(theData, argv);
};
// 而後就緒
if
(!(argv && (argv.shareTo ==
'favorite'
|| argv.scene ==
'favorite'
) && callbacks.favorite ===
false
)) {
callbacks.ready && callbacks.ready(argv, data);
// 若是設置了async爲true,可是在ready方法中並無手動調用dataLoaded方法,則自動觸發一次
if
(!callbacks.__cbkCalled) {
callbacks.dataLoaded({});
callbacks.__cbkCalled =
false
;
}
}
}
else
{
// 就緒狀態
var theData = _extend(data);
if
(!(argv && (argv.shareTo ==
'favorite'
|| argv.scene ==
'favorite'
) && callbacks.favorite ===
false
)) {
callbacks.ready && callbacks.ready(argv, theData);
}
handler(theData, argv);
}
});
};
/**
* 分享到微信朋友圈
* @param {Object} data 待分享的信息
* @p-config {String} appId 公衆平臺的appId(服務號可用)
* @p-config {String} imgUrl 圖片地址
* @p-config {String} link 連接地址
* @p-config {String} desc 描述
* @p-config {String} title 分享的標題
*
* @param {Object} callbacks 相關回調方法
* @p-config {Boolean} async ready方法是否須要異步執行,默認false
* @p-config {Function} ready(argv, data) 就緒狀態
* @p-config {Function} dataLoaded(data) 數據加載完成後調用,async爲true時有用,也能夠爲空
* @p-config {Function} cancel(resp) 取消
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} confirm(resp) 成功
* @p-config {Function} all(resp) 不管成功失敗都會執行的回調
*/
WeixinApi.shareToTimeline = function (data, callbacks) {
_share({
menu:
'menu:share:timeline'
,
action:
'shareTimeline'
}, {
"appid"
: data.appId ? data.appId :
''
,
"img_url"
: data.imgUrl,
"link"
: data.link,
"desc"
: data.desc,
"title"
: data.title,
"img_width"
:
"640"
,
"img_height"
:
"640"
}, callbacks);
};
/**
* 發送給微信上的好友
* @param {Object} data 待分享的信息
* @p-config {String} appId 公衆平臺的appId(服務號可用)
* @p-config {String} imgUrl 圖片地址
* @p-config {String} link 連接地址
* @p-config {String} desc 描述
* @p-config {String} title 分享的標題
*
* @param {Object} callbacks 相關回調方法
* @p-config {Boolean} async ready方法是否須要異步執行,默認false
* @p-config {Function} ready(argv, data) 就緒狀態
* @p-config {Function} dataLoaded(data) 數據加載完成後調用,async爲true時有用,也能夠爲空
* @p-config {Function} cancel(resp) 取消
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} confirm(resp) 成功
* @p-config {Function} all(resp) 不管成功失敗都會執行的回調
*/
WeixinApi.shareToFriend = function (data, callbacks) {
_share({
menu:
'menu:share:appmessage'
,
action:
'sendAppMessage'
}, {
"appid"
: data.appId ? data.appId :
''
,
"img_url"
: data.imgUrl,
"link"
: data.link,
"desc"
: data.desc,
"title"
: data.title,
"img_width"
:
"640"
,
"img_height"
:
"640"
}, callbacks);
};
/**
* 分享到騰訊微博
* @param {Object} data 待分享的信息
* @p-config {String} link 連接地址
* @p-config {String} desc 描述
*
* @param {Object} callbacks 相關回調方法
* @p-config {Boolean} async ready方法是否須要異步執行,默認false
* @p-config {Function} ready(argv, data) 就緒狀態
* @p-config {Function} dataLoaded(data) 數據加載完成後調用,async爲true時有用,也能夠爲空
* @p-config {Function} cancel(resp) 取消
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} confirm(resp) 成功
* @p-config {Function} all(resp) 不管成功失敗都會執行的回調
*/
WeixinApi.shareToWeibo = function (data, callbacks) {
_share({
menu:
'menu:share:weibo'
,
action:
'shareWeibo'
}, {
"content"
: data.desc,
"url"
: data.link
}, callbacks);
};
/**
* 新的分享接口
* @param {Object} data 待分享的信息
* @p-config {String} appId 公衆平臺的appId(服務號可用)
* @p-config {String} imgUrl 圖片地址
* @p-config {String} link 連接地址
* @p-config {String} desc 描述
* @p-config {String} title 分享的標題
*
* @param {Object} callbacks 相關回調方法
* @p-config {Boolean} async ready方法是否須要異步執行,默認false
* @p-config {Function} ready(argv, data) 就緒狀態
* @p-config {Function} dataLoaded(data) 數據加載完成後調用,async爲true時有用,也能夠爲空
* @p-config {Function} cancel(resp) 取消
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} confirm(resp) 成功
* @p-config {Function} all(resp) 不管成功失敗都會執行的回調
*/
WeixinApi.generalShare = function (data, callbacks) {
_share({
menu:
'general:share'
}, {
"appid"
: data.appId ? data.appId :
''
,
"img_url"
: data.imgUrl,
"link"
: data.link,
"desc"
: data.desc,
"title"
: data.title,
"img_width"
:
"640"
,
"img_height"
:
"640"
}, callbacks);
};
/**
* 設置頁面禁止分享:包括朋友圈、好友、騰訊微博、qq
* @param callback
*/
WeixinApi.disabledShare = function (callback) {
callback = callback || function () {
alert(
'當前頁面禁止分享!'
);
};
[
'menu:share:timeline'
,
'menu:share:appmessage'
,
'menu:share:qq'
,
'menu:share:weibo'
,
'general:share'
].forEach(function (menu) {
WeixinJSBridge.on(menu, function () {
callback();
return
false
;
});
});
};
/**
* 調起微信Native的圖片播放組件。
* 這裏必須對參數進行強檢測,若是參數不合法,直接會致使微信客戶端crash
*
* @param {String} curSrc 當前播放的圖片地址
* @param {Array} srcList 圖片地址列表
*/
WeixinApi.imagePreview = function (curSrc, srcList) {
if
(!curSrc || !srcList || srcList.length ==
0
) {
return
;
}
WeixinJSBridge.invoke(
'imagePreview'
, {
'current'
: curSrc,
'urls'
: srcList
});
};
/**
* 顯示網頁右上角的按鈕
*/
WeixinApi.showOptionMenu = function () {
WeixinJSBridge.call(
'showOptionMenu'
);
};
/**
* 隱藏網頁右上角的按鈕
*/
WeixinApi.hideOptionMenu = function () {
WeixinJSBridge.call(
'hideOptionMenu'
);
};
/**
* 顯示底部工具欄
*/
WeixinApi.showToolbar = function () {
WeixinJSBridge.call(
'showToolbar'
);
};
/**
* 隱藏底部工具欄
*/
WeixinApi.hideToolbar = function () {
WeixinJSBridge.call(
'hideToolbar'
);
};
/**
* 返回以下幾種類型:
*
* network_type:wifi wifi網絡
* network_type:edge 非wifi,包含3G/2G
* network_type:fail 網絡斷開鏈接
* network_type:wwan 2g或者3g
*
* 使用方法:
* WeixinApi.getNetworkType(function(networkType){
*
* });
*
* @param callback
*/
WeixinApi.getNetworkType = function (callback) {
if
(callback && typeof callback ==
'function'
) {
WeixinJSBridge.invoke(
'getNetworkType'
, {}, function (e) {
// 在這裏拿到e.err_msg,這裏面就包含了全部的網絡類型
callback(e.err_msg);
});
}
};
/**
* 關閉當前微信公衆平臺頁面
* @param {Object} callbacks 回調方法
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} success(resp) 成功
*/
WeixinApi.closeWindow = function (callbacks) {
callbacks = callbacks || {};
WeixinJSBridge.invoke(
"closeWindow"
, {}, function (resp) {
switch
(resp.err_msg) {
// 關閉成功
case
'close_window:ok'
:
callbacks.success && callbacks.success(resp);
break
;
// 關閉失敗
default
:
callbacks.fail && callbacks.fail(resp);
break
;
}
});
};
/**
* 當頁面加載完畢後執行,使用方法:
* WeixinApi.ready(function(Api){
* // 從這裏只用Api便是WeixinApi
* });
* @param readyCallback
*/
WeixinApi.ready = function (readyCallback) {
/**
* 加一個鉤子,同時解決Android和iOS下的分享問題
* @private
*/
var _hook = function () {
var _WeixinJSBridge = {};
Object.keys(WeixinJSBridge).forEach(function (key) {
_WeixinJSBridge[key] = WeixinJSBridge[key];
});
Object.keys(WeixinJSBridge).forEach(function (key) {
if
(typeof WeixinJSBridge[key] ===
'function'
) {
WeixinJSBridge[key] = function () {
try
{
var args = arguments.length >
0
? arguments[
0
] : {},
runOn3rd_apis = args.__params ? args.__params.__runOn3rd_apis || [] : [];
[
'menu:share:timeline'
,
'menu:share:appmessage'
,
'menu:share:weibo'
,
'menu:share:qq'
,
'general:share'
].forEach(function (menu) {
runOn3rd_apis.indexOf(menu) === -
1
&& runOn3rd_apis.push(menu);
});
}
catch
(e) {
}
return
_WeixinJSBridge[key].apply(WeixinJSBridge, arguments);
};
}
});
};
if
(readyCallback && typeof readyCallback ==
'function'
) {
var Api =
this
;
var wxReadyFunc = function () {
_hook();
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();
}
}
};
/**
* 判斷當前網頁是否在微信內置瀏覽器中打開
*/
WeixinApi.openInWeixin = function () {
return
/MicroMessenger/i.test(navigator.userAgent);
};
/**
* 發送郵件
* @param {Object} data 郵件初始內容
* @p-config {String} subject 郵件標題
* @p-config {String} body 郵件正文
*
* @param {Object} callbacks 相關回調方法
* @p-config {Function} fail(resp) 失敗
* @p-config {Function} success(resp) 成功
* @p-config {Function} all(resp) 不管成功失敗都會執行的回調
*/
WeixinApi.sendEmail = function (data, callbacks) {
callbacks = callbacks || {};
WeixinJSBridge.invoke(
"sendEmail"
, {
"title"
: data.subject,
"content"
: data.body
}, function (resp) {
if
(resp.err_msg ===
'send_email:sent'
) {
callbacks.success && callbacks.success(resp);
}
else
{
callbacks.fail && callbacks.fail(resp);
}
callbacks.all && callbacks.all(resp);
})
};
/**
* 開啓Api的debug模式,好比出了個什麼錯誤,能alert告訴你,而不是一直很苦逼的在想哪兒出問題了
* @param {Function} callback(error) 出錯後的回調,默認是alert
*/
WeixinApi.enableDebugMode = function (callback) {
/**
* @param {String} errorMessage 錯誤信息
* @param {String} scriptURI 出錯的文件
* @param {Long} lineNumber 出錯代碼的行號
* @param {Long} columnNumber 出錯代碼的列號
*/
window.onerror = function (errorMessage, scriptURI, lineNumber, columnNumber) {
// 有callback的狀況下,將錯誤信息傳遞到options.callback中
if
(typeof callback ===
'function'
) {
callback({
message: errorMessage,
script: scriptURI,
line: lineNumber,
column: columnNumber
});
}
else
{
// 其餘狀況,都以alert方式直接提示錯誤信息
var msgs = [];
msgs.push(
"額,代碼有錯。。。"
);
msgs.push(
"\n錯誤信息:"
, errorMessage);
msgs.push(
"\n出錯文件:"
, scriptURI);
msgs.push(
"\n出錯位置:"
, lineNumber +
'行,'
+ columnNumber +
'列'
);
alert(msgs.join(
''
));
}
}
};
/**
* 通用分享,一種簡便的寫法
* @param wxData
* @param wxCallbacks
*/
WeixinApi.share = function (wxData, wxCallbacks) {
WeixinApi.ready(function (Api) {
// 用戶點開右上角popup菜單後,點擊分享給好友,會執行下面這個代碼
Api.shareToFriend(wxData, wxCallbacks);
// 點擊分享到朋友圈,會執行下面這個代碼
Api.shareToTimeline(wxData, wxCallbacks);
// 點擊分享到騰訊微博,會執行下面這個代碼
Api.shareToWeibo(wxData, wxCallbacks);
// 分享到各渠道
Api.generalShare(wxData, wxCallbacks);
});
};
})(window);
|
加入了share.js後,能夠經過WeixinApi.ready()來完成分享功能git
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
// 須要分享的內容,請放到ready裏
WeixinApi.ready(function(Api) {
// 微信分享的數據
var wxData = {
"imgUrl"
:
"{$shareimg}"
,
"link"
:
"{$sharelink}"
,
"desc"
:
"{$sharedesc}"
,
"title"
:
"{$sharetitle}"
};
// 分享的回調
var wxCallbacks = {
// 收藏操做是否觸發回調,默認是開啓的
favorite :
false
,
// 分享操做開始以前
ready : function() {
// 你能夠在這裏對分享的數據進行重組
},
// 分享被用戶自動取消
cancel : function(resp) {
// 你能夠在你的頁面上給用戶一個小Tip,爲何要取消呢?
},
// 分享失敗了
fail : function(resp) {
// 分享失敗了,是否是能夠告訴用戶:沒關係,多是網絡問題,一下子再試試?
},
// 分享成功
confirm : function(resp) {
// 分享成功了,咱們是否是能夠作一些分享統計呢?
//轉發成功
$.ajax({
type:
'POST'
,
url:
"{php echo $this->createMobileUrl('setadd', array('id' => $id))}"
,
//data: {"id":0},
dataType:
'json'
,
success: function(e) {
alert(e.msg);
if
(e.success!=
0
){
$(
"#lcount"
).text(e.success);
}
return
true
;
},
error: function(e, t) {
return
false
;
}
});
},
// 整個分享過程結束
all : function(resp,shareTo) {
// 若是你作的是一個鼓勵用戶進行分享的產品,在這裏是否是能夠給用戶一些反饋了?
}
};
// 用戶點開右上角popup菜單後,點擊分享給好友,會執行下面這個代碼
Api.shareToFriend(wxData, wxCallbacks);
// 點擊分享到朋友圈,會執行下面這個代碼
Api.shareToTimeline(wxData, wxCallbacks);
// 點擊分享到騰訊微博,會執行下面這個代碼
Api.shareToWeibo(wxData, wxCallbacks);
// iOS上,能夠直接調用這個API進行分享,一句話搞定
Api.generalShare(wxData,wxCallbacks);
});
|
回調裏面控制了分享過程當中的各個流程github