選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

77 行
2.5 KiB

  1. <template>
  2. <view></view>
  3. </template>
  4. <script>
  5. import wx from '@/common/js/weixin-js-sdk.js';
  6. export default {
  7. name:"scanCode",
  8. props:{},
  9. data() {
  10. return {
  11. wxObject:null,
  12. };
  13. },
  14. mounted() {
  15. this.setConfig()
  16. },
  17. methods: {
  18. setConfig() {
  19. const promise = new Promise((resolve, reject) => {
  20. // let url = window.location.href
  21. let url = /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.localStorage.getItem('scanUrl')
  22. this.HTTP_GET("weixinapi/getweixinwebaccess_token?url=" + encodeURIComponent(url)).then((success)=>{
  23. if(!success){
  24. resolve(false)
  25. return
  26. }
  27. this.wxObject = wx
  28. this.wxObject.config({
  29. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  30. appId: success.appid, // 必填,公众号的唯一标识
  31. timestamp: success.timestamp, // 必填,生成签名的时间戳
  32. nonceStr: success.noncestr, // 必填,生成签名的随机串
  33. signature: success.certificate, // 必填,签名
  34. jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表
  35. });
  36. this.wxObject.ready(() => {
  37. this.TOAST("扫码初始化成功")
  38. })
  39. this.wxObject.error(() => {
  40. this.TOAST("扫码初始化失败")
  41. })
  42. })
  43. })
  44. return promise
  45. },
  46. scanCode(){
  47. return new Promise((resolve)=>{
  48. if(!this.wxObject||!this.wxObject.scanQRCode){
  49. this.TOAST("无效方法")
  50. resolve(false)
  51. }else{
  52. this.TOAST("正在调用扫码...")
  53. }
  54. this.wxObject.scanQRCode({
  55. needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
  56. scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
  57. success: (res) => {
  58. this.TOAST("方法调用成功")
  59. var result = res.resultStr; // 当 needResult 为 1 时,扫码返回的结果
  60. var resultArr = result.split(','); // 扫描结果以逗号分割数组
  61. var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素,也就是最终的内容
  62. resolve({result:codeContent})
  63. },
  64. fail: (res) =>{
  65. this.TOAST("调用扫码失败")
  66. resolve(false)
  67. }
  68. });
  69. })
  70. }
  71. },
  72. }
  73. </script>
  74. <style>
  75. </style>