微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 line
3.7 KiB

  1. import * as STORAGE from './utils/storage'
  2. import * as UTIL from './utils/util'
  3. import * as API from './utils/API'
  4. App({
  5. onLaunch() {
  6. var that = this;
  7. //存储storage初始化globalData数据--
  8. //何时存储,用来判断,不用获取code
  9. that.initGlobalData();
  10. //授权处理
  11. UTIL.initSQFromWX();
  12. //获取code
  13. // UTIL.getCOdeFromWX({
  14. // complate: (code) => {
  15. // console.log('app:微信code,' + code);
  16. // //获取openId
  17. // that.getOpenIdFromFW(code);
  18. // }
  19. // });
  20. //获取设备信息
  21. wx.getSystemInfo({
  22. success: function (res) {
  23. that.globalData.systemType = res.system.indexOf("Android") >= 0 ? "Android" : "IOS";
  24. that.globalData.isIphoneX = res.model.indexOf("iPhone X") >= 0 || res.model.indexOf("iPhone 1") >= 0;
  25. }
  26. });
  27. },
  28. onShow() {
  29. //更新机制
  30. this.wxappUpdateManager();
  31. },
  32. globalData: {
  33. // 系统用户登录信息(用户id、token)
  34. userInfo: {
  35. memberId: '',
  36. token: ''
  37. },
  38. //微信用户登陆信息(昵称、头像、省、城市)
  39. wxUserInfo: {
  40. nickName: '',
  41. avatarUrl: '',
  42. province: '',
  43. city: ''
  44. }
  45. ,
  46. /**
  47. * 小程序设置
  48. */
  49. setInfo: {
  50. //定位授权
  51. locationOpenIdWX: false,
  52. //纬度
  53. latitude:'',
  54. //经度
  55. longitude:'',
  56. }
  57. ,
  58. systemType:'',//设备类型 Android IOS
  59. isIphoneX: false, // 用来标识当前手机机型是否为 iPhone X
  60. },
  61. /**
  62. * 从服务端获取openId
  63. */
  64. getOpenIdFromFW(code) {
  65. let sendData = {
  66. code: code
  67. }
  68. UTIL.httpRequestNoneDetal(API.URL_GET_OPENID, sendData, "POST", {
  69. success: (res) => {
  70. if (res._code == API.SUCCESS_CODE) {
  71. console.log("成功获取到openId:" + res._data.openid);
  72. UTIL.showToastNoneIcon("openId:" + res._data.openid);
  73. } else {
  74. //未获取到openId
  75. console.log("失败,获取到openId:" + res._msg);
  76. UTIL.showToastNoneIcon("openId:失败");
  77. }
  78. }
  79. })
  80. }
  81. ,
  82. /**
  83. * 初始化globalData
  84. */
  85. initGlobalData() {
  86. var userInfo = {
  87. memberId: STORAGE.getMemberId(),
  88. token: STORAGE.getToken()
  89. }
  90. console.log(userInfo)
  91. this.globalData.userInfo = userInfo;
  92. }
  93. ,
  94. /**
  95. * 小程序更新机制
  96. * 获取小程序更新机制兼容
  97. */
  98. wxappUpdateManager() {
  99. if (wx.canIUse('getUpdateManager')) {
  100. const updateManager = wx.getUpdateManager();
  101. if (!!updateManager) {
  102. updateManager.onCheckForUpdate(function (res) {
  103. // 请求完新版本信息的回调
  104. if (res.hasUpdate) {
  105. updateManager.onUpdateReady(function () {
  106. wx.showModal({
  107. title: '更新提示',
  108. content: '新版本已经准备好,是否重启应用?',
  109. success: function (res) {
  110. if (res.confirm) {
  111. // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
  112. updateManager.applyUpdate()
  113. }
  114. }
  115. })
  116. })
  117. updateManager.onUpdateFailed(function () {
  118. // 新的版本下载失败
  119. wx.showModal({
  120. title: '已经有新版本了哟~',
  121. content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
  122. })
  123. })
  124. }
  125. })
  126. }
  127. } else {
  128. // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
  129. wx.showModal({
  130. title: '提示',
  131. content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
  132. })
  133. }
  134. },
  135. })