scan.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // logs.js
  2. const util = require('../../utils/util.js')
  3. Page({
  4. data: {
  5. activeIcon: "/subpages/icons/ic_selected_radio.svg",
  6. normalIcon: "/subpages/icons/ic_radio.svg",
  7. logs: [],
  8. checkedPrivacy: false,
  9. canGetPhoneNumber: false,
  10. },
  11. onSaveExitState: function () {
  12. wx.clearStorage();
  13. console.log("onSaveExitState=");
  14. // 返回保存的数据和超时时间(可选)
  15. return {
  16. expireTimeStamp: Date.now() + 24 * 60 * 60 * 1000 // 超时时间戳,例如设置为1天后过期
  17. };
  18. },
  19. onChangePrivacy(event) {
  20. const check = event.detail;
  21. this.setData({
  22. checkedPrivacy: check
  23. });
  24. },
  25. //扫码
  26. tapScan() {
  27. if (!this.data.checkedPrivacy) {
  28. wx.showToast({
  29. title: '请先阅读并同意《舒眠大健康用户服务协议》和《舒眠大健康隐私保护政策》',
  30. icon: 'none',
  31. duration: 2000
  32. })
  33. return;
  34. }
  35. wx.scanCode({
  36. success: function (res) {
  37. console.log('扫码获取的参数', res);
  38. wx.clearStorage();
  39. wx.setStorageSync('res', res);
  40. wx.setStorageSync('scanResultExpiresAt', Date.now() + 2 * 60 * 60 * 1000); // 超时时间戳,例如设置为2小时后过期
  41. wx.reLaunch({
  42. url: '/pages/index/index?res=' + res,//传res
  43. })
  44. }
  45. })
  46. },
  47. onLoad() {
  48. console.log("scan页面");
  49. }, onShow() {
  50. const app = getApp();
  51. app.globalData.selectedTabIndex = 4;
  52. this.getTabBar().setData({
  53. selected: 4
  54. })
  55. },
  56. login: function () {
  57. var that = this;
  58. wx.login({
  59. success: res => {
  60. if (res.code) {
  61. // 发送 code 到服务器换取 session_key, openid
  62. wx.request({
  63. url: 'https://yourserver.com/api/login',
  64. data: {
  65. code: res.code
  66. },
  67. success: function (loginRes) {
  68. if (loginRes.data.success) {
  69. wx.setStorageSync('session_key', loginRes.data.session_key);
  70. wx.setStorageSync('openid', loginRes.data.openid);
  71. // 可以在这里提示用户进行手机号授权
  72. this.setData({
  73. canGetPhoneNumber: true
  74. });
  75. }
  76. }
  77. });
  78. }
  79. }
  80. });
  81. },
  82. getPhoneNumber: function (e) {
  83. if (e.detail.errMsg !== "getPhoneNumber:ok") {
  84. return;
  85. }
  86. const { encryptedData, iv } = e.detail;
  87. wx.request({
  88. url: 'https://yourserver.com/api/decrypt_phone',
  89. data: {
  90. encryptedData,
  91. iv,
  92. session_key: wx.getStorageSync('session_key')
  93. },
  94. success: function (decryptRes) {
  95. if (decryptRes.data.success) {
  96. console.log('解密后的手机号:', decryptRes.data.phoneNumber);
  97. // 处理解密后的手机号
  98. }
  99. }
  100. });
  101. },
  102. // 绑定按钮点击事件
  103. bindGetPhoneNumber: function () {
  104. if (this.data.canGetPhoneNumber) {
  105. wx.getPhoneNumber({
  106. success: this.getPhoneNumber
  107. });
  108. }
  109. }
  110. })