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

3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. toastTimeout:null
  38. },
  39. //微信用户登陆信息(昵称、头像、省、城市)
  40. wxUserInfo: {
  41. nickName: '',
  42. avatarUrl: '',
  43. province: '',
  44. city: ''
  45. }
  46. ,
  47. /**
  48. * 小程序设置
  49. */
  50. setInfo: {
  51. //定位授权
  52. locationOpenIdWX: false,
  53. //纬度
  54. latitude:'',
  55. //经度
  56. longitude:'',
  57. }
  58. ,
  59. systemType:'',//设备类型 Android IOS
  60. isIphoneX: false, // 用来标识当前手机机型是否为 iPhone X
  61. },
  62. /**
  63. * 从服务端获取openId
  64. */
  65. getOpenIdFromFW(code) {
  66. let sendData = {
  67. code: code
  68. }
  69. UTIL.httpRequestNoneDetal(API.URL_GET_OPENID, sendData, "POST", {
  70. success: (res) => {
  71. if (res._code == API.SUCCESS_CODE) {
  72. console.log("成功获取到openId:" + res._data.openid);
  73. UTIL.showToastNoneIcon("openId:" + res._data.openid);
  74. } else {
  75. //未获取到openId
  76. console.log("失败,获取到openId:" + res._msg);
  77. UTIL.showToastNoneIcon("openId:失败");
  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. showToast(msg, selfClass = '') {
  136. clearTimeout(this.globalData.toastTimeout);
  137. const page = getCurrentPages();
  138. const currPage = page[page.length - 1];
  139. currPage.setData({
  140. toastData: {
  141. showFlag: true,
  142. toastMsg: msg,
  143. selfClass,
  144. },
  145. });
  146. this.globalData.toastTimeout = setTimeout(() => {
  147. currPage.setData({
  148. toastData: {
  149. showFlag: false,
  150. selfClass: '',
  151. },
  152. });
  153. }, 200000);
  154. },
  155. })