mpi.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. let mpi = {}
  2. mpi.requestPayment = (params) => {
  3. return new Promise((resolve, reject) => {
  4. uni.requestPayment({
  5. provider: 'wxpay',
  6. ...params,
  7. success: function(res) {
  8. if (res.errMsg == "requestPayment:ok") {
  9. resolve(res)
  10. }
  11. },
  12. fail: function(err) {
  13. reject(err)
  14. }
  15. });
  16. })
  17. }
  18. mpi.navigateToMiniProgram = (appId, path) => {
  19. return new Promise((resolve, reject) => {
  20. uni.navigateToMiniProgram({
  21. appId,
  22. path,
  23. success(res) {
  24. resolve(res)
  25. },
  26. fail(err) {
  27. reject(err)
  28. }
  29. })
  30. })
  31. }
  32. // 微信登陆
  33. mpi.wxLogin = () => {
  34. return new Promise((resolve, reject) => {
  35. uni.login({
  36. success: function(res) {
  37. resolve(res)
  38. },
  39. fail: function(err) {
  40. console.warn(err)
  41. reject(err)
  42. }
  43. })
  44. })
  45. }
  46. //选择图片 res.tempFilePaths[0]
  47. mpi.chooseImage = (count = 1) => {
  48. return new Promise((resolve, reject) => {
  49. uni.chooseImage({
  50. count,
  51. //最多可以选择的图片张数,默认9
  52. sourceType: ['album'],
  53. sizeType: ['compressed'],
  54. //可选择原图或压缩后的图片
  55. success: res => {
  56. resolve(res.tempFilePaths)
  57. },
  58. fail(err) {
  59. reject(err)
  60. }
  61. });
  62. })
  63. }
  64. mpi.downloadFile = (url) => {
  65. return new Promise((resolve, reject) => {
  66. uni.downloadFile({
  67. url,
  68. success: (res) => {
  69. resolve(res.tempFilePath)
  70. },
  71. fail:(err)=>{
  72. reject(err)
  73. }
  74. });
  75. })
  76. }
  77. mpi.savePhoto = (filePath) => {
  78. return new Promise((resolve, reject) => {
  79. uni.saveImageToPhotosAlbum({
  80. filePath,
  81. success: function(res) {
  82. resolve(res)
  83. uni.showToast({
  84. title: "保存成功",
  85. icon: "none"
  86. });
  87. },
  88. fail: function(err) {
  89. reject(err)
  90. uni.showToast({
  91. title: "保存失败,请稍后重试",
  92. icon: "none"
  93. });
  94. }
  95. });
  96. })
  97. }
  98. mpi.getLocation = () => {
  99. return new Promise((resolve, reject) => {
  100. uni.getLocation({
  101. type: 'gcj02',
  102. success: function(res) {
  103. resolve(res)
  104. },
  105. fail: function(err) {
  106. reject(err)
  107. }
  108. });
  109. })
  110. }
  111. mpi.chooseLocation = () => {
  112. return new Promise((resolve, reject) => {
  113. uni.chooseLocation({
  114. success: function(res) {
  115. resolve(res)
  116. },
  117. fail: function(err) {
  118. reject(err)
  119. }
  120. });
  121. })
  122. }
  123. mpi.getConnectedWifi = () => {
  124. return new Promise((resolve, reject) => {
  125. uni.startWifi({
  126. success: function(res) {
  127. wx.getConnectedWifi({
  128. success: res => {
  129. resolve(res)
  130. },
  131. fail: err => {
  132. reject(err)
  133. }
  134. })
  135. },
  136. fail: function(err) {
  137. reject(err)
  138. }
  139. });
  140. })
  141. }
  142. /**
  143. * 订阅认证信息
  144. */
  145. mpi.subscribe = (tmplIds) => {
  146. return new Promise((resolve, reject) => {
  147. uni.requestSubscribeMessage({
  148. tmplIds,
  149. success(res) {
  150. resolve(res)
  151. },
  152. fail(err) {
  153. reject(err)
  154. }
  155. })
  156. })
  157. },
  158. // 获取用户信息
  159. mpi.wxGetUserInfo = () => {
  160. return new Promise((resolve, reject) => {
  161. uni.getUserInfo({
  162. withCredentials: true,
  163. success: function(res) {
  164. resolve(res)
  165. },
  166. fail: function(err) {
  167. reject(err)
  168. },
  169. })
  170. })
  171. }
  172. //新版本的获取用户信息
  173. mpi.getUserProfile = () => {
  174. return new Promise((resolve, reject) => {
  175. uni.getUserProfile({
  176. desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
  177. success: (res) => {
  178. resolve(res)
  179. },
  180. fail: (err) => {
  181. reject(err)
  182. }
  183. })
  184. })
  185. }
  186. let compareVersion = (v1, v2) => {
  187. v1 = v1.split('.')
  188. v2 = v2.split('.')
  189. const len = Math.max(v1.length, v2.length)
  190. while (v1.length < len) {
  191. v1.push('0')
  192. }
  193. while (v2.length < len) {
  194. v2.push('0')
  195. }
  196. for (let i = 0; i < len; i++) {
  197. const num1 = parseInt(v1[i])
  198. const num2 = parseInt(v2[i])
  199. if (num1 > num2) {
  200. return 1
  201. } else if (num1 < num2) {
  202. return -1
  203. }
  204. }
  205. return 0
  206. }
  207. mpi.versioning = (minVersion) => {
  208. const version = wx.getSystemInfoSync().SDKVersion
  209. return new Promise((resolve, reject) => {
  210. if (compareVersion(version, minVersion) >= 0) {
  211. resolve()
  212. } else {
  213. uni.showModal({
  214. content: "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。"
  215. })
  216. }
  217. })
  218. }
  219. export default mpi