app.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const config = require('./config')
  2. global.isDemo = true
  3. App({
  4. onLaunch(opts) {
  5. console.log('App Launch', opts)
  6. if (!wx.cloud) {
  7. console.error('请使用 2.2.3 或以上的基础库以使用云能力')
  8. } else {
  9. wx.cloud.init({
  10. env: config.envId,
  11. traceUser: true,
  12. })
  13. }
  14. },
  15. onShow(opts) {
  16. console.log('App Show', opts)
  17. },
  18. onHide() {
  19. console.log('App Hide')
  20. },
  21. globalData: {
  22. hasLogin: false,
  23. openid: null
  24. },
  25. // lazy loading openid
  26. getUserOpenId(callback) {
  27. const self = this
  28. if (self.globalData.openid) {
  29. callback(null, self.globalData.openid)
  30. } else {
  31. wx.login({
  32. success(data) {
  33. wx.request({
  34. url: config.openIdUrl,
  35. data: {
  36. code: data.code
  37. },
  38. success(res) {
  39. console.log('拉取openid成功', res)
  40. self.globalData.openid = res.data.openid
  41. callback(null, self.globalData.openid)
  42. },
  43. fail(res) {
  44. console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
  45. callback(res)
  46. }
  47. })
  48. },
  49. fail(err) {
  50. console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
  51. callback(err)
  52. }
  53. })
  54. }
  55. },
  56. // 通过云函数获取用户 openid,支持回调或 Promise
  57. getUserOpenIdViaCloud() {
  58. return wx.cloud.callFunction({
  59. name: 'wxContext',
  60. data: {}
  61. }).then(res => {
  62. this.globalData.openid = res.result.openid
  63. return res.result.openid
  64. })
  65. }
  66. })