经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序获取地理位置及经纬度授权代码实例
来源:jb51  时间:2019/9/19 8:55:03  对本文有异议

这篇文章主要介绍了微信小程序获取地理位置及经纬度授权代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

微信小程序获取地理位置授权,首先需要在app.json中添加配置:

  1. "permission": {
  2. "scope.userLocation": {
  3. "desc": "请确认授权"
  4. }
  5. }

获取经纬度:如果手机未开启位置信息,那么授权成功后在wx.getLocation()方法中也会一直失败,所以需要在fail方法中提示用户开启手机位置信息

  1. getUserLocation: function () {
  2. let vm = this
  3. wx.getSetting({
  4. success: (res) => {
  5. // res.authSetting['scope.userLocation'] == undefined 表示 初始化进入该页面
  6. // res.authSetting['scope.userLocation'] == false 表示 非初始化进入该页面,且未授权
  7. // res.authSetting['scope.userLocation'] == true 表示 地理位置授权
  8. // 拒绝授权后再次进入重新授权
  9. if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
  10. // console.log('authSetting:status:拒绝授权后再次进入重新授权', res.authSetting['scope.userLocation'])
  11. wx.showModal({
  12. title: '',
  13. content: '【泰福利Lite】需要获取你的地理位置,请确认授权',
  14. success: function (res) {
  15. if (res.cancel) {
  16. wx.showToast({
  17. title: '拒绝授权',
  18. icon: 'none'
  19. })
  20. setTimeout(() => {
  21. wx.navigateBack()
  22. }, 1500)
  23. } else if (res.confirm) {
  24. wx.openSetting({
  25. success: function (dataAu) {
  26. // console.log('dataAu:success', dataAu)
  27. if (dataAu.authSetting["scope.userLocation"] == true) {
  28. //再次授权,调用wx.getLocation的API
  29. vm.getLocation(dataAu)
  30. } else {
  31. wx.showToast({
  32. title: '授权失败',
  33. icon: 'none'
  34. })
  35. setTimeout(() => {
  36. wx.navigateBack()
  37. }, 1500)
  38. }
  39. }
  40. })
  41. }
  42. }
  43. })
  44. }
  45. // 初始化进入,未授权
  46. else if (res.authSetting['scope.userLocation'] == undefined) {
  47. // console.log('authSetting:status:初始化进入,未授权', res.authSetting['scope.userLocation'])
  48. //调用wx.getLocation的API
  49. vm.getLocation(res)
  50. }
  51. // 已授权
  52. else if (res.authSetting['scope.userLocation']) {
  53. // console.log('authSetting:status:已授权', res.authSetting['scope.userLocation'])
  54. //调用wx.getLocation的API
  55. vm.getLocation(res)
  56. }
  57. }
  58. })
  59. },
  60. // 微信获得经纬度
  61. getLocation: function (userLocation) {
  62. let vm = this
  63. wx.getLocation({
  64. type: "wgs84",
  65. success: function (res) {
  66. // console.log('getLocation:success', res)
  67. var latitude = res.latitude
  68. var longitude = res.longitude
  69. vm.getDaiShu(latitude, longitude)
  70. },
  71. fail: function (res) {
  72. // console.log('getLocation:fail', res)
  73. if (res.errMsg === 'getLocation:fail:auth denied') {
  74. wx.showToast({
  75. title: '拒绝授权',
  76. icon: 'none'
  77. })
  78. setTimeout(() => {
  79. wx.navigateBack()
  80. }, 1500)
  81. return
  82. }
  83. if (!userLocation || !userLocation.authSetting['scope.userLocation']) {
  84. vm.getUserLocation()
  85. } else if (userLocation.authSetting['scope.userLocation']) {
  86. wx.showModal({
  87. title: '',
  88. content: '请在系统设置中打开定位服务',
  89. showCancel: false,
  90. success: result => {
  91. if (result.confirm) {
  92. wx.navigateBack()
  93. }
  94. }
  95. })
  96. } else {
  97. wx.showToast({
  98. title: '授权失败',
  99. icon: 'none'
  100. })
  101. setTimeout(() => {
  102. wx.navigateBack()
  103. }, 1500)
  104. }
  105. }
  106. })
  107. }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号