1
+ /* eslint-disable */
2
+ ! ( function ( ) {
3
+ var jsonpData = function ( url , callback ) {
4
+ window . yylivewechatsharecallback = function ( data ) {
5
+ delete window . yylivewechatsharecallback ;
6
+ document . body . removeChild ( script ) ;
7
+ callback ( data ) ;
8
+ }
9
+ let script = document . createElement ( 'script' ) ;
10
+ script . src = url + ( url . indexOf ( '?' ) >= 0 ? '&' : '?' ) + 'callback=yylivewechatsharecallback' ;
11
+ document . body . appendChild ( script ) ;
12
+ }
13
+
14
+ var cloneObj = function ( oldObj ) { //复制对象方法
15
+ if ( typeof ( oldObj ) != 'object' ) return oldObj ;
16
+ if ( oldObj == null ) return oldObj ;
17
+ var newObj = new Object ( ) ;
18
+ for ( var i in oldObj )
19
+ newObj [ i ] = cloneObj ( oldObj [ i ] ) ;
20
+ return newObj ;
21
+ }
22
+
23
+ var extendObj = function ( ) { //扩展对象
24
+ var args = arguments ;
25
+ if ( args . length < 2 ) return ;
26
+ var temp = cloneObj ( args [ 0 ] ) ; //调用复制对象方法
27
+ for ( var n = 1 ; n < args . length ; n ++ ) {
28
+ for ( var i in args [ n ] ) {
29
+ temp [ i ] = args [ n ] [ i ] ;
30
+ }
31
+ }
32
+ return temp ;
33
+ }
34
+
35
+ var wechatShare = function ( opt ) {
36
+ if ( ! ( this instanceof wechatShare ) ) {
37
+ return new wechatShare ( opt ) ;
38
+ }
39
+ var config = {
40
+ title : '短视频分享' ,
41
+ desc : '短视频分享描述' ,
42
+ link : '//www.yy.com' ,
43
+ img : '//makefriends.bs2dl.yy.com/48980134342886519512.png' ,
44
+ request_share_url : '//www.yy.com/mobileweb/share/weixinSign2?url=' + encodeURIComponent ( window . location . href . split ( '#' ) [ 0 ] ) ,
45
+ success_callback : function ( ) {
46
+
47
+ } ,
48
+ cancel_callback : function ( ) {
49
+
50
+ } ,
51
+ debug : false
52
+ }
53
+ this . defaults = extendObj ( config , opt ) ;
54
+ // alert(JSON.stringify(this.defaults));
55
+ this . init ( ) ;
56
+ }
57
+
58
+ window . ___isWxReaday = false ;
59
+ wechatShare . prototype = {
60
+ init : function ( ) {
61
+ var self = this ;
62
+ if ( window . ___isWxReaday ) {
63
+ self . setShare ( self . defaults ) ;
64
+ } else {
65
+ self . doconfig ( ) ;
66
+ }
67
+ } ,
68
+ doconfig : function ( ) {
69
+ var self = this ;
70
+ /*share*/
71
+ var request_share_url = self . defaults . request_share_url ;
72
+ jsonpData ( request_share_url , function ( jdata ) {
73
+ var msg = jdata . data ;
74
+ wx . config ( {
75
+ debug : self . defaults . debug , // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
76
+ appId : msg . appId , // 必填,公众号的唯一标识
77
+ timestamp : msg . timestamp , // 必填,生成签名的时间戳
78
+ nonceStr : msg . nonceStr , // 必填,生成签名的随机串
79
+ signature : msg . signature , // 必填,签名,见附录1
80
+ jsApiList : [ 'onMenuShareTimeline' , 'onMenuShareAppMessage' , 'onMenuShareQQ' , 'chooseWXPay' , 'onMenuShareWeibo' , 'startRecord' , 'stopRecord' , 'onVoiceRecordEnd' , 'playVoice' , 'pauseVoice' , 'stopVoice' , 'onVoicePlayEnd' , 'uploadVoice' , 'downloadVoice' , 'translateVoice' ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
81
+ } ) ;
82
+ wx . ready ( function ( ) {
83
+ self . setShare ( self . defaults ) ;
84
+ window . ___isWxReaday = true ;
85
+ } ) ;
86
+ } ) ;
87
+ /*share end*/
88
+ } ,
89
+ setShare : function ( pnote ) {
90
+ var share_title = pnote . title ;
91
+ var share_desc = pnote . desc ;
92
+ var share_link = pnote . link ;
93
+ var share_img = pnote . img ;
94
+ console . log ( 'set share' , share_title ) ;
95
+ //分享到朋友圈
96
+ wx . onMenuShareTimeline ( {
97
+ title : share_title + ':' + share_desc , // 分享标题
98
+ link : share_link , // 分享链接
99
+ imgUrl : share_img , // 分享图标
100
+ success : function ( ) {
101
+ pnote . success_callback ( 1 ) ;
102
+ } ,
103
+ cancel : function ( ) {
104
+ pnote . cancel_callback ( 1 ) ;
105
+ }
106
+ } ) ;
107
+ //分享给朋友
108
+ wx . onMenuShareAppMessage ( {
109
+ title : share_title , // 分享标题
110
+ desc : share_desc , // 分享描述
111
+ link : share_link , // 分享链接
112
+ imgUrl : share_img , // 分享图标
113
+ type : '' , // 分享类型,music、video或link,不填默认为link
114
+ dataUrl : '' , // 如果type是music或video,则要提供数据链接,默认为空
115
+ success : function ( ) {
116
+ pnote . success_callback ( 2 ) ;
117
+ } ,
118
+ cancel : function ( ) {
119
+ pnote . cancel_callback ( 2 ) ;
120
+ }
121
+ } ) ;
122
+ wx . onMenuShareQQ ( {
123
+ title : share_title , // 分享标题
124
+ desc : share_desc , // 分享描述
125
+ link : share_link , // 分享链接
126
+ imgUrl : share_img , // 分享图标
127
+ success : function ( ) {
128
+ pnote . success_callback ( 3 ) ;
129
+ } ,
130
+ cancel : function ( ) {
131
+ pnote . cancel_callback ( 3 ) ;
132
+ }
133
+ } ) ;
134
+ wx . onMenuShareWeibo ( {
135
+ title : share_title , // 分享标题
136
+ desc : share_desc , // 分享描述
137
+ link : share_link , // 分享链接
138
+ imgUrl : share_img , // 分享图标
139
+ success : function ( ) {
140
+ pnote . success_callback ( 4 ) ;
141
+ } ,
142
+ cancel : function ( ) {
143
+ pnote . cancel_callback ( 4 ) ;
144
+ }
145
+ } )
146
+ }
147
+ }
148
+ // RequireJS && SeaJS
149
+ if ( typeof define === 'function' ) {
150
+ define ( function ( ) {
151
+ return wechatShare ;
152
+ } ) ;
153
+
154
+ // NodeJS
155
+ } else if ( typeof exports !== 'undefined' ) {
156
+ module . exports = wechatShare ;
157
+ } else {
158
+ this . wechatShare = wechatShare ;
159
+ }
160
+
161
+ } ) ( )
0 commit comments