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

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