微信小程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

164 строки
4.5 KiB

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