微信小程序获取当前位置的详细步骤

网友投稿 609 2023-11-09

目录1 腾讯位置开发基本步骤1.1 申请开发者密钥(key)1.2 -微信小程序JavaScriptSDK1.3 安全域名设置1.4 微信小程序设置隐私权限2 获取位置信息3 权限问题总结

微信小程序获取位置信息的方式有两种,一种是调用微信官方的接口来获取,如getLocation,这种方式只能获取经纬度

微信官方文档

微信小程序获取当前位置的详细步骤

https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html

另一种是使用的第三方平台的,比如本文章使用的是 腾讯地图

微信小程序JavaScript SDK / 开发指南 / 入门及使用限制-开发文档

https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview

1 腾讯位置开发基本步骤

1.1 申请开发者密钥(key)

申请密钥 :登录腾讯开发者平台,然后创建应用,如下图

开通webserviceAPI服务:控制台 ->应用管理 -> 我的应用 ->添加key-> 勾选WebServiceAPI -> 保存

(小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需要具备相应的权限)

1.2 -微信小程序JavaScriptSDK

-微信小程序JavaScriptSDK

https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.2.zip

-后解压,拷贝到微信小程序项目中

1.3 安全域名设置

安全域名设置,在小程序管理后台 -> 开发 -> 开发管理 -> 开发设置 -> “服务器域名” 中设置request合法域名,添加

https://apis.map.qq.com

1.4 微信小程序设置隐私权限

在app.json 文本中添加

?
1
2
3
4
5
6
7
8
"permission": {
"scope.userLocation": {
"desc": "小程序需要使用您的位置信息 已确认您的采样地址"
}
},
"requiredPrivateInfos": [
"getLocation"
],

getLocation 是使用微信接口来获取经纬度时使用,需要申请调用权限。

2 获取位置信息

核心代码如下:

3 权限问题

当用户第一次进入页面获取位位置信息时,小程序会弹出请求位置权限申请,如果用户点击了拒绝权限,那下次进入时,将不会再次弹出权限申请,所以这个过程需要开发者来维护处理一下。

如果用户拒绝过,再次进入后,弹框提示用户开启权限

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//定位方法
initLocationPersmiss: function () {
var _this = this;
wx.getSetting({
success: (res) => {
// res.authSetting[scope.userLocation] == undefined  表示 初始化进入该页面
// res.authSetting[scope.userLocation] == false  表示 非初始化进入该页面,且未授权
// res.authSetting[scope.userLocation] == true  表示 地理位置授权
if (res.authSetting[scope.userLocation] != undefined && res.authSetting[scope.userLocation] != true) {
//未授权
wx.showModal({
title: 请求授权当前位置,
content: 需要获取您的地理位置,请确认授权,
success: function (res) {
if (res.cancel) {
//取消授权
wx.showToast({
title: 拒绝授权 暂时无法使用本功能,
icon: none,
duration: 1000
})
} else if (res.confirm) {
//确定授权,通过wx.openSetting发起授权请求
wx.openSetting({
success: function (res) {
if (res.authSetting["scope.userLocation"] == true) {
wx.showToast({
title: 授权成功,
icon: success,
duration: 1000
})
//再次授权,调用wx.getLocation的API
_this.initGetLocationFlunction();
} else {
wx.showToast({
title: 授权失败,
icon: none,
duration: 1000
})
}
}
})
}
}
})
} else if (res.authSetting[scope.userLocation] == undefined) {
//用户首次进入页面,调用wx.getLocation的API
_this.initGetLocationFlunction();
} else {
console.log(授权成功)
//调用wx.getLocation的API
_this.initGetLocationFlunction();
}
}
})
},

获取位置的请求

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
initGetLocationFlunction(isRefresh){
let that = this;
this.setData({isUpdateLocatin:true})
qqmapsdk.reverseGeocoder({
success: function(res) {
let result = res.result;
console.log(res);
},
fail: function(res) {
console.log(res.status, res.message);
},
complete: function(res) {
console.log(res.status, res.message);
}
})
},

完毕

总结

您可能感兴趣的文章:微信小程序常用功能实例汇总包括上拉刷新,下拉加载,列表数据绑定,轮播,参数传递使用微信小程序API,调用微信的各种内置能力。微信小程序怎么加入JavaScript脚本,做出动态效果微信小程序如何设置基本的页面样式,做出用户界面UI制作微信小程序的小白简单入门教程微信小程序实现云开发上传文件、图片功能微信小程序获取用户头像昵称组件封装实例(最新版)微信小程序父子组件通信详细介绍微信小程序tabBar自定义弹窗遮挡不住解决技巧微信小程序api列表汇总包括网络API,媒体API,文件API ,微信小程序支付流程,位置API,界面API等

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序前后端数据交互的详细图文教程
下一篇:小程序页面动态配置实现方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~