@@ -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: "" |
@@ -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(); |
@@ -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> |
@@ -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, |
@@ -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", |
@@ -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", |