https.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. const weather = 'https://free-api.heweather.net/s6/weather'
  2. const future = 'http://v.juhe.cn/weather/index'
  3. const air = 'https://free-api.heweather.net/s6/air/now'
  4. const locl = 'http://apis.juhe.cn/geo/'
  5. const QQ_MAP_KEY1 = '630ac2e3d80941b48c80fe3a8ed1a042'
  6. const QQ_MAP_KEY2 = 'c649beb3621c84ee57c365f45a9a6ed4'
  7. const QQ_MAP_KEY3 = 'dd35eaa26348f268f1f02b4a8fbe4aaf'
  8. //添加finally事件
  9. Promise.prototype.finally = function (callback) {
  10. var Promise = this.constructor;
  11. return this.then(
  12. function (value) {
  13. Promise.resolve(callback()).then(
  14. function () {
  15. return value;
  16. }
  17. );
  18. },
  19. function (reason) {
  20. Promise.resolve(callback()).then(
  21. function () {
  22. throw reason;
  23. }
  24. );
  25. }
  26. );
  27. }
  28. // 实况天气
  29. function getWeather(location) {
  30. return new Promise((resolve, reject) => {
  31. uni.request({
  32. url: weather+"/now",
  33. data: {
  34. location:location,
  35. key: QQ_MAP_KEY1
  36. },
  37. success: (res) => {
  38. resolve({result: res.data})
  39. },
  40. fail: (e) => {
  41. reject(e)
  42. },
  43. complete: (e) => {
  44. }
  45. })
  46. })
  47. }
  48. // 未来天气
  49. function getFuture(location) {
  50. return new Promise((resolve, reject) => {
  51. uni.request({
  52. url: weather+"/forecast",
  53. data: {
  54. location:location,
  55. key: QQ_MAP_KEY1
  56. },
  57. success: (res) => {
  58. resolve({result: res.data})
  59. },
  60. fail: (e) => {
  61. reject(e)
  62. },
  63. complete: (e) => {
  64. }
  65. })
  66. })
  67. }
  68. // 生活指数
  69. function getLift(location) {
  70. return new Promise((resolve, reject) => {
  71. uni.request({
  72. url: weather+"/lifestyle",
  73. data: {
  74. location:location,
  75. key: QQ_MAP_KEY1,
  76. },
  77. success: (res) => {
  78. resolve({result:res.data})
  79. },
  80. fail: (e) => {
  81. reject(e)
  82. }
  83. })
  84. })
  85. }
  86. // 空气质量---废弃
  87. function getAir(location) {
  88. return new Promise((resolve, reject) => {
  89. uni.request({
  90. url: air,
  91. data: {
  92. location:location,
  93. key: QQ_MAP_KEY1,
  94. },
  95. success: (res) => {
  96. resolve({result:res.data})
  97. },
  98. fail: (e) => {
  99. reject(e)
  100. }
  101. })
  102. })
  103. }
  104. // 經緯度逆解析
  105. function gelocation(obj) {
  106. return new Promise((resolve, reject) => {
  107. uni.request({
  108. url: "/api/geo/",
  109. data: {
  110. key: QQ_MAP_KEY3,
  111. lat:obj.lat,
  112. lng:obj.lng,
  113. type:1
  114. },
  115. success: (res) => {
  116. resolve({result:res.data})
  117. },
  118. fail: (e) => {
  119. reject(e)
  120. }
  121. })
  122. })
  123. }
  124. export {
  125. getWeather,
  126. getFuture,
  127. getLift,
  128. getAir,
  129. gelocation
  130. }
  131. // export const getWeather = (location) => {
  132. // return new Promise((resolve, reject) => {
  133. // wx.request({
  134. // url: 'https://free-api.heweather.net/s6/weather/now',
  135. // data: {
  136. // location:location,
  137. // key: QQ_MAP_KEY1
  138. // },
  139. // success: (res) => {
  140. // resolve({result: res.data})
  141. // },
  142. // fail: (e) => {
  143. // reject(e)
  144. // },
  145. // complete: (e) => {
  146. //
  147. // }
  148. // })
  149. // })
  150. // }
  151. // 未来七天天气
  152. // export const getFuture = (location) => {
  153. // return new Promise((resolve, reject) => {
  154. // wx.request({
  155. // url: 'http://v.juhe.cn/weather/index',
  156. // data: {
  157. // cityname:location,
  158. // key: QQ_MAP_KEY2
  159. // },
  160. // success: (res) => {
  161. // console.log(res)
  162. // resolve({result: res.data})
  163. // },
  164. // fail: (e) => {
  165. // console.log("haha chucuo 2 ")
  166. // reject(e)
  167. // }
  168. // })
  169. // })
  170. // }
  171. // 生活指数
  172. // export const getLift = (location) => {
  173. // return new Promise((resolve, reject) => {
  174. // wx.request({
  175. // url: 'https://free-api.heweather.net/s6/weather/lifestyle',
  176. // data: {
  177. // location:location,
  178. // key: QQ_MAP_KEY1,
  179. // },
  180. // success: (res) => {
  181. // resolve({result:res.data})
  182. // },
  183. // fail: (e) => {
  184. // reject(e)
  185. // }
  186. // })
  187. // })
  188. // }
  189. // 获取空气质量
  190. // export const getAir = (location) => {
  191. // return new Promise((resolve, reject) => {
  192. // wx.request({
  193. // url: 'https://free-api.heweather.net/s6/air/now',
  194. // data: {
  195. // location:location,
  196. // key: QQ_MAP_KEY1,
  197. // },
  198. // success: (res) => {
  199. // resolve({result:res.data})
  200. // },
  201. // fail: (e) => {
  202. // reject(e)
  203. // }
  204. // })
  205. // })
  206. // }
  207. // 经纬度逆向解析
  208. // export const gelocation = (obj) => {
  209. // return new Promise((resolve, reject) => {
  210. // wx.request({
  211. // url: 'http://apis.juhe.cn/geo/',
  212. // data: {
  213. // key: QQ_MAP_KEY3,
  214. // lat:obj.lat,
  215. // lng:obj.lng,
  216. // type:1
  217. // },
  218. // success: (res) => {
  219. // resolve({result:res.data})
  220. // },
  221. // fail: (e) => {
  222. // reject(e)
  223. // }
  224. // })
  225. // })
  226. // }