Update jswe.js

Brightcells 7 年之前
父节点
当前提交
df0111917e

+ 3 - 3
page/templates/page/lensman_oauth.html

@@ -9,7 +9,7 @@
9 9
         <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
10 10
         <title>摄影师授权</title>
11 11
 
12
-        <link href="https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
12
+        <link href="//res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
13 13
 
14 14
         <style>
15 15
             input:required:invalid {
@@ -185,11 +185,11 @@
185 185
             {% endif %}
186 186
         </script>
187 187
         <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
188
-        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.3.js' %}"></script>
188
+        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
189 189
         <script>
190 190
             V.initWxData({
191 191
                 imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",
192
-                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/lensman&scope=snsapi_base',
192
+                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/lensman&scope=snsapi_userinfo',
193 193
                 desc: "摄影师授权",
194 194
                 title: "摄影师授权",
195 195
                 timeLine: ""

+ 5 - 5
page/templates/page/login_qrcode.html

@@ -9,7 +9,7 @@
9 9
         <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
10 10
         <title>授权登录二维码</title>
11 11
 
12
-        <link href="https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
12
+        <link href="//res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
13 13
 
14 14
         <style>
15 15
             input:required:invalid {
@@ -47,13 +47,13 @@
47 47
             });
48 48
         </script>
49 49
         <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
50
-        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.3.js' %}"></script>
50
+        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
51 51
         <script>
52 52
             V.initWxData({
53 53
                 imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",
54
-                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/lensman&scope=snsapi_base',
55
-                desc: "摄影师授权",
56
-                title: "摄影师授权",
54
+                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/loginqr&scope=snsapi_userinfo',
55
+                desc: "授权登录",
56
+                title: "授权登录",
57 57
                 timeLine: ""
58 58
             }, true);
59 59
             V.hideOptionMenu();

+ 7 - 6
page/templates/page/tourguide_oauth.html

@@ -9,7 +9,7 @@
9 9
         <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
10 10
         <title>导游授权</title>
11 11
 
12
-        <link href="https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
12
+        <link href="//res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
13 13
 
14 14
         <style>
15 15
             input:required:invalid {
@@ -152,7 +152,7 @@
152 152
 
153 153
         <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>
154 154
         <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
155
-        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.3.js' %}"></script>
155
+        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
156 156
         <script>
157 157
             {% if modified %}
158 158
             $(function() {
@@ -250,20 +250,21 @@
250 250
             {% endif %}
251 251
         </script>
252 252
         <script>
253
-            V.wxChooseImageSuccess = function (res) {
254
-                $('#tour_guide_photo')[0].src = V.images.localIds[0];
255
-            }
256 253
             V.initWxData({
257 254
                 imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",
258
-                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/tourguide&scope=snsapi_base',
255
+                link: 'http://pai.ai/we/we_oauth2?redirect_url=http://pai.ai/page/tourguide&scope=snsapi_userinfo',
259 256
                 desc: "导游授权",
260 257
                 title: "导游授权",
261 258
                 timeLine: ""
262 259
             }, true);
263 260
             V.hideOptionMenu();
261
+            // 导游证上传
264 262
             $('.weui_uploader_input_wrp').click(function () {
265 263
                 V.chooseImage(1, true);
266 264
             })
265
+            V.wxChooseImageSuccess = function (res) {
266
+                $('#tour_guide_photo')[0].src = V.images.localIds[0];
267
+            }
267 268
         </script>
268 269
     </body>
269 270
 </html>

+ 186 - 22
pai2/static/pai2/js/jswe-0.0.3.js

@@ -40,6 +40,7 @@
40 40
         'previewImage',
41 41
         'uploadImage',
42 42
         'downloadImage',
43
+        'getLocalImgData',
43 44
         'getNetworkType',
44 45
         'openLocation',
45 46
         'getLocation',
@@ -56,13 +57,13 @@
56 57
     ], wxApiFun
57 58
 
58 59
     function isEmpty(obj) {
59
-        if (obj == null) return true;
60
-        if (obj.length > 0) return false;
61
-        if (obj.length === 0) return true;
60
+        if (obj == null) return true
61
+        if (obj.length > 0) return false
62
+        if (obj.length === 0) return true
62 63
         for (var key in obj) {
63
-            if (Object.prototype.hasOwnProperty.call(obj, key)) return false;
64
+            if (Object.prototype.hasOwnProperty.call(obj, key)) return false
64 65
         }
65
-        return true;
66
+        return true
66 67
     }
67 68
 
68 69
     function isNotEmpty(obj) {
@@ -195,7 +196,7 @@
195 196
                     fail: function (res) {
196 197
                         if (JSWE.wxHideMenuItemsFail) {JSWE.wxHideMenuItemsFail(res)}
197 198
                     }
198
-                });
199
+                })
199 200
             }
200 201
             // 8.4 批量显示菜单项
201 202
             if (isNotEmpty(wxConfig.showMenuItems)) {
@@ -207,7 +208,7 @@
207 208
                     fail: function (res) {
208 209
                         if (JSWE.wxShowMenuItemsFail) {JSWE.wxShowMenuItemsFail(res)}
209 210
                     }
210
-                });
211
+                })
211 212
             }
212 213
             // 8.5 隐藏所有非基本菜单项
213 214
             // 8.6 显示所有被隐藏的非基本菜单项
@@ -216,9 +217,24 @@
216 217
             }
217 218
             // 8.7 关闭当前窗口
218 219
             if (wxConfig.close) {wx.closeWindow()}
220
+        }, wxVoiceApi = function() {
221
+            // 4.3 监听录音自动停止
222
+            wx.onVoiceRecordEnd({
223
+                complete: function (res) {
224
+                    voice.localId = res.localId
225
+                    if (JSWE.wxVoiceRecordEnd) {JSWE.wxVoiceRecordEnd(res)}
226
+                }
227
+            })
228
+            // 4.7 监听录音播放停止
229
+            wx.onVoicePlayEnd({
230
+                complete: function (res) {
231
+                    if (JSWE.wxVoicePlayEnd) {JSWE.wxVoicePlayEnd(res)}
232
+                }
233
+            })
219 234
         }, wxApi = function () {
220 235
             wxShareApi()
221 236
             wxMenuApi()
237
+            wxVoiceApi()
222 238
         }
223 239
 
224 240
         wx.ready(wxApi)
@@ -254,13 +270,119 @@
254 270
         if ('undefined' !== typeof wxApiFun) wxApiFun()
255 271
     }
256 272
 
273
+    // 3 智能接口
274
+    var voice = {
275
+        localId: '',
276
+        serverId: ''
277
+    }
278
+    // 3.1 识别音频并返回识别结果
279
+    function translateVoice() {
280
+        if (voice.localId == '') {
281
+            if (JSWE.wxTranslateVoiceEmpty) {JSWE.wxTranslateVoiceEmpty()}
282
+            return
283
+        }
284
+        wx.translateVoice({
285
+            localId: voice.localId,
286
+            complete: function (res) {
287
+                if (JSWE.wxTranslateVoiceComplete) {JSWE.wxTranslateVoiceComplete(res)}
288
+            }
289
+        })
290
+    }
291
+
292
+    // 4 音频接口
293
+    // 4.1 开始录音
294
+    function startRecord() {
295
+        wx.startRecord({
296
+            cancel: function () {
297
+                if (JSWE.wxStartRecordCancel) {JSWE.wxStartRecordCancel(res)}
298
+            }
299
+        })
300
+    }
301
+
302
+    // 4.2 停止录音
303
+    function stopRecord() {
304
+        wx.stopRecord({
305
+          success: function (res) {
306
+              voice.localId = res.localId
307
+              if (JSWE.wxStopRecordSuccess) {JSWE.wxStopRecordSuccess(res)}
308
+          },
309
+          fail: function (res) {
310
+              if (JSWE.wxStopRecordFail) {JSWE.wxStopRecordFail(res)}
311
+          }
312
+        })
313
+    }
314
+
315
+    // 4.4 播放音频
316
+    function playVoice() {
317
+        if (voice.localId == '') {
318
+            if (JSWE.wxPlayVoiceEmpty) {JSWE.wxPlayVoiceEmpty()}
319
+            return
320
+        }
321
+        wx.playVoice({
322
+            localId: voice.localId
323
+        })
324
+    }
325
+
326
+    // 4.5 暂停播放音频
327
+    function pauseVoice() {
328
+        if (voice.localId == '') {
329
+            if (JSWE.wxPauseVoiceEmpty) {JSWE.wxPauseVoiceEmpty()}
330
+            return
331
+        }
332
+        wx.pauseVoice({
333
+            localId: voice.localId
334
+        })
335
+    }
336
+
337
+    // 4.6 停止播放音频
338
+    function stopVoice() {
339
+        if (voice.localId == '') {
340
+            if (JSWE.wxStopVoiceEmpty) {JSWE.wxStopVoiceEmpty()}
341
+            return
342
+        }
343
+        wx.stopVoice({
344
+            localId: voice.localId
345
+        })
346
+    }
347
+
348
+    // 4.8 上传语音
349
+    function uploadVoice() {
350
+        var localId = voice.localId
351
+        if (localId == '') {
352
+            if (JSWE.wxUploadVoiceEmpty) {JSWE.wxUploadVoiceEmpty()}
353
+            return
354
+        }
355
+        wx.uploadVoice({
356
+            localId: localId,
357
+            success: function (res) {
358
+                voice.serverId = res.serverId
359
+                if (JSWE.wxUploadVoiceSuccess) {JSWE.wxUploadVoiceSuccess(res, localId)}
360
+            }
361
+        })
362
+    }
363
+
364
+    // 4.9 下载语音
365
+    function downloadVoice() {
366
+        var serverId = voice.serverId
367
+        if (serverId == '') {
368
+            if (JSWE.wxDownloadVoiceEmpty) {JSWE.wxDownloadVoiceEmpty()}
369
+            return
370
+        }
371
+        wx.downloadVoice({
372
+            serverId: serverId,
373
+            success: function (res) {
374
+                voice.localId = res.localId
375
+                if (JSWE.wxDownloadVoiceSuccess) {JSWE.wxDownloadVoiceSuccess(res, serverId)}
376
+            }
377
+        })
378
+    }
379
+
257 380
     // 5 图片接口
258
-    // 5.1 拍照、本地选图
259 381
     var images = {
260 382
         localIds: [],
261 383
         serverIds: []
262
-    };
263
-    // function chooseImage(count, directUpload, isShowProgressTips) {
384
+    }
385
+    // 5.1 拍照、本地选图
264 386
     function chooseImage(choose_params) {
265 387
         if ('undefined' === typeof choose_params) choose_params = {}
266 388
         wx.chooseImage({
@@ -268,13 +390,13 @@
268 390
             sizeType: choose_params.sizeType || ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
269 391
             sourceType: choose_params.sourceType || ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
270 392
             success: function (res) {
271
-                images.localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
393
+                images.localIds = res.localIds // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
272 394
                 // 判断是否直接上传
273 395
                 if (choose_params.directUpload) {setTimeout(uploadImages({localIds: images.localIds, isShowProgressTips: choose_params.isShowProgressTips || 1}), 100)}
274 396
                 // 拍照、本地选图成功后的回调函数
275
-                if (JSWE.wxChooseImageSuccess) {JSWE.wxChooseImageSuccess(res)}
397
+                if (JSWE.wxChooseImageSuccess) {JSWE.wxChooseImageSuccess(res, choose_params.extras || {})}
276 398
             }
277
-        });
399
+        })
278 400
     }
279 401
 
280 402
     // 5.2 图片预览
@@ -282,31 +404,59 @@
282 404
         wx.previewImage({
283 405
             current: preview_params.current, // 当前显示图片的链接,不填则默认为 urls 的第一张
284 406
             urls: preview_params.urls // 需要预览的图片链接列表
285
-        });
407
+        })
286 408
     }
287 409
 
288 410
     // 5.3 上传图片
289
-    // function uploadImage(localId, isShowProgressTips) {
290 411
     function uploadImage(upload_params) {
291 412
         // 上传图片为异步处理,重复上传同一图片,返回的serverId也是不同的
413
+        var localId = upload_params.localId
292 414
         wx.uploadImage({
293
-            localId: upload_params.localId, // 需要上传的图片的本地ID,由chooseImage接口获得
415
+            localId: localId, // 需要上传的图片的本地ID,由chooseImage接口获得
294 416
             isShowProgressTips: upload_params.isShowProgressTips || 1, // 默认为1,显示进度提示
295 417
             success: function (res) {
296
-                images.serverIds.push(res.serverId); // 返回图片的服务器端ID
418
+                images.serverIds.push(res.serverId) // 返回图片的服务器端ID
297 419
                 // 上传图片成功后的回调函数
298
-                if (JSWE.wxUploadImageSuccess) {JSWE.wxUploadImageSuccess(res)}
420
+                if (JSWE.wxUploadImageSuccess) {JSWE.wxUploadImageSuccess(res, localId)}
299 421
             }
300
-        });
422
+        })
301 423
     }
302 424
 
303
-    // function uploadImages(localIds, isShowProgressTips) {
304 425
     function uploadImages(upload_params) {
305 426
         var localIds = upload_params.localIds, isShowProgressTips = upload_params.isShowProgressTips || 1
306
-        images.serverIds = [];
427
+        images.serverIds = []
307 428
         for (var idx in localIds) {uploadImage({localId: localIds[idx], isShowProgressTips: isShowProgressTips})}
308 429
     }
309 430
 
431
+    // 5.4 下载图片
432
+    function downloadImage(download_params) {
433
+        var serverId = download_params.serverId
434
+        wx.downloadImage({
435
+            serverId: serverId, // 需要下载的图片的服务器端ID,由uploadImage接口获得
436
+            isShowProgressTips: download_params.isShowProgressTips || 1, // 默认为1,显示进度提示
437
+            success: function (res) {
438
+                images.localId.push(res.localId)
439
+                if (JSWE.wxDownloadImageSuccess) {JSWE.wxDownloadImageSuccess(res, serverId)}
440
+            }
441
+        })
442
+    }
443
+
444
+    function downloadImages(download_params) {
445
+        var serverIds = download_params.serverIds, isShowProgressTips = download_params.isShowProgressTips || 1
446
+        images.localIds = []
447
+        for (var idx in serverIds) {downloadImage({serverId: serverIds[idx], isShowProgressTips: isShowProgressTips})}
448
+    }
449
+
450
+    function getLocalImgData(localId) {
451
+        wx.getLocalImgData({
452
+            localId: localId, // 图片的localID
453
+            success: function (res) {
454
+                // var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
455
+                if (JSWE.wxGetLocalImgDataSuccess) {JSWE.wxGetLocalImgDataSuccess(res)}
456
+            }
457
+        })
458
+    }
459
+
310 460
     // 9 微信原生接口
311 461
     // 9.1.1 扫描二维码并返回结果
312 462
     // 9.1.2 扫描二维码并返回结果
@@ -318,7 +468,7 @@
318 468
             success: function (res) {  // 当 needResult 为 1 时,扫码返回的结果
319 469
                 if (JSWE.wxScanQRCodeSuccess) {JSWE.wxScanQRCodeSuccess(res)}
320 470
             }
321
-        });
471
+        })
322 472
     }
323 473
 
324 474
     // QRCode & BarCode is different
@@ -389,12 +539,26 @@
389 539
         changeWxData: changeWxData,
390 540
         fixedWxData: fixedWxData,
391 541
 
542
+        // Voice Function
543
+        voice: voice,
544
+        translateVoice: translateVoice,
545
+        startRecord: startRecord,
546
+        stopRecord: stopRecord,
547
+        playVoice: playVoice,
548
+        pauseVoice: pauseVoice,
549
+        stopVoice: stopVoice,
550
+        uploadVoice: uploadVoice,
551
+        downloadVoice: downloadVoice,
552
+
392 553
         // Image Function
393 554
         images: images,
394 555
         chooseImage: chooseImage,
395 556
         previewImage: previewImage,
396 557
         uploadImage: uploadImage,
397 558
         uploadImages: uploadImages,
559
+        downloadImage: downloadImage,
560
+        downloadImages: downloadImages,
561
+        getLocalImgData: getLocalImgData,
398 562
 
399 563
         // Scan Function
400 564
         scanQRCode: scanQRCode,

+ 1 - 1
photo/templates/photo/photo_detail.html

@@ -47,7 +47,7 @@
47 47
 
48 48
         <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>
49 49
         <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
50
-        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.3.js' %}"></script>
50
+        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
51 51
         <script>
52 52
             V.initWxData({
53 53
                 imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",

+ 1 - 1
photo/templates/photo/session_detail.html

@@ -49,7 +49,7 @@
49 49
 
50 50
         <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>
51 51
         <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
52
-        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.3.js' %}"></script>
52
+        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
53 53
         <script>
54 54
             V.initWxData({
55 55
                 imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",