首页 网站首页 商业信息 定位 查看内容

uni-app实现定位功能

杭州共生网络 2023-2-5 13:22 7318人围观 定位

微信小法式定位

  1. 获得定位信息
    间接利用uni-APP自带的getLocation方式,获得当前位置的经纬度:
<script setup>
// 微信 - 获得位置信息
function getLocationInfo() {
uni.getLocation({
type: "gcj02",
success(res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
}
})
}
</script>

2. 获得权限
利用uni-app自带的authorize方式,向用户倡议地理位置授权请求。在操纵前要先设置对应的权限数据
翻开uni-app项目标设置文件manifest.json,点击"源码视图"。




mp-weixin设置工具里增加红框代码。

"permission" : {
"scope.userLocation" : {
"desc" : "利用定位功用"
}
},
"requiredPrivateInfos": ["getLocation"]


将项目运转至微信开辟者工具上,翻开项目里的设置文件app.json




在设置工具里增加红框代码。

"permission": {
"scope.userLocation": {
"desc": "利用定位功用"
}
},
"requiredPrivateInfos": [
"getLocation"
],


接着在authorize方式的scope参数上填写scope.userLocation,暗示需要获得地理位置。
假如用户拒绝授权,则询问用户能否打卡小法式设备页面。

<script setup>
// 微信 - 获得权限
function getAuthorizeInfo() {
uni.authorize({
scope: "scope.userLocation",
success(res) {
getLocationInfo();
},
fail(err) {
uni.showModal({
content: "检测到您没翻开获得定位功用权限,能否去设备翻开?",
confirmText: "确认",
cancelText: "取消",
success: function(res) {
if (res.confirm) {
uni.openSetting({
success() {
getLocationInfo();
}
})
}
}
})
}
})
}
</script>

3. 获得设备信息
为了利用的松散性,我们应当在利用时先判定当前状态能否有获得地理位置权限,假如没有再向用户申请授权。

<script>
// 微信 - 获得设备信息
function getSettingInfo() {
uni.getSetting({
success(res) {
if (res.authSetting['scope.userLocation']) {
getLocationInfo();
} else {
getAuthorizeInfo();
}
}
})
}
</script>

4. 获得精准定位
这里以腾讯舆图为例,需要用到高德舆图间接参考官方文档。
4.1 在腾讯舆图网站申请开辟者,建立利用获得key,并下载对应的SDK文件qqmap-wx-jssdk.min.js
4.2 翻开SDK文件qqmap-wx-jssdk.min.js,在文件末端位置停止替换。

// 本来
module.exports = QQMapWX;
// 变动成
export default QQMapWX;


4.3 建立libs文件夹,放入SDK文件。
4.4 建立腾讯舆图工具

import QQMapWX from "@/libs/qqmap-wx-jssdk.min";
const tMap = new QQMapWX({
key: "00000-11111-22222-33333-44444-55555"
});


4.5 挪用腾讯舆图逆地址剖析方式,获得位置信息

uni.getLocation({
type: 'gcj02',
success: res => {
tMap.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(res) {
let result = {
latitude: res.result.location.lat,
longitude: res.result.location.lng,
location: res.result.formatted_addresses.recommend
}
}
});
}
});

5. 完整代码

import QQMapWX from "@/libs/qqmap-wx-jssdk.min";
const tMap = new QQMapWX({
key: "00000-11111-22222-33333-44444-55555"
});

// 获得地址 - 微信
export function getLocationByWeiXin() {
getSettingInfo();
}

// 微信 - 获得设备信息
function getSettingInfo() {
uni.getSetting({
success(res) {
if (res.authSetting['scope.userLocation']) {
getLocationInfo();
} else {
getAuthorizeInfo();
}
}
})
}

// 微信 - 获得权限
function getAuthorizeInfo() {
uni.authorize({
scope: "scope.userLocation",
success(res) {
getLocationInfo();
},
fail(err) {
uni.showModal({
content: "检测到您没翻开获得定位功用权限,能否去设备翻开?",
confirmText: "确认",
cancelText: "取消",
success: function(res) {
if (res.confirm) {
uni.openSetting({
success() {
getLocationInfo();
}
})
}
}
})
}
})
}

// 微信 - 获得当前经纬度
function getLocationInfo() {
uni.getLocation({
type: "gcj02",
success(data) {
tMap.reverseGeocoder({
location: {
latitude: data.latitude,
longitude: data.longitude
},
success: function(res) {
let result = {
latitude: res.result.location.lat,
longitude: res.result.location.lng,
location: res.result.formatted_addresses.recommend
}
}
});
}
})
}

App定位

  1. 进入高德舆图控制图,建立利用获得到安卓和ios的key值。
  2. 设置定位信息
    翻开manifest.json文件的App模块设置,勾选Geolocation(定位)并填写appkey_iosappkey_android


3. 完整代码

import QQMapWX from "@/libs/qqmap-wx-jssdk.min";
const tMap = new QQMapWX({
key: "00000-11111-22222-33333-44444-55555"
});

// 获得地址 - 腾讯
export function getLocationByApp() {
uni.getLocation({
type: 'gcj02',
success: res => {
tMap.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(res) {
let result = {
latitude: res.result.location.lat,
longitude: res.result.location.lng,
location: res.result.formatted_addresses.recommend
}
resolve(result);
}
});
},
fail: error => {
uni.showModal({
content: "检测到您没翻开获得定位功用权限,能否去设备翻开?",
confirmText: "确认",
cancelText: "取消",
success: (res) => {
if (res.confirm) {
uni.getSystemInfo({
success: (sys) => {
if (sys.platform == 'ios') {
plus.runtime.openURL("app-settings://");
} else {
let main = plus.android.runtimeMainActivity();
let Intent = plus.android.importClass("android.content.Intent");
let mIntent = new Intent('android.settings.LOCATION_SOURCE_SETTINGS');
main.startActivity(mIntent);
}
}
})
}
}
})
}
});
}

常见题目

  1. 微信小法式利用定位报错
{errMsg: "getSetting: fail"}
{errMsg: "authorize: fail"}

处理方式:

检查微信小法式的AppID能否设置。

翻开uni-app项目标设置文件manifest.json,点击"微信小法式设置"。



2. 微信小法式利用定位报错

{errMsg: "getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json"}

处理方式:

翻开uni-app项目标设置文件manifest.json,点击"源码视图"。



mp-weixin设置工具里增加红框代码。

"permission" : {
"scope.userLocation" : {
"desc" : "利用定位功用"
}
},
"requiredPrivateInfos": ["getLocation"]

将项目运转至微信开辟者工具上,翻开项目里的设置文件app.json



在设置工具里增加红框代码。

"permission": {
"scope.userLocation": {
"desc": "利用定位功用"
}
},
"requiredPrivateInfos": [
"getLocation"
],

重新编译项目在启动,uni.getLocation方式能一般返回经纬度了。

高端人脉微信群

高端人脉微信群

人脉=钱脉,我们相信天下没有聚不拢的人脉,扫码进群找到你所需的人脉,对接你所需的资源。

商业合作微信

商业合作微信

本站创始人微信,13年互联网营销经验,擅长引流裂变、商业模式、私域流量,高端人脉资源丰富。

精彩点评

相关推荐

1元开通测试!华为“高精度定位”功能上线

1元开通测试!华为“高精度定位”功能上线

11月29日,华为系列手机把鸿蒙系统更新到最新版本后,取消了“辅助定位设置”的选项,

定位理论5大坑,你踩过几个?

定位理论5大坑,你踩过几个?

编辑导语:有些“定位方法论”充分利用了读者的“简化冲动”,可能我们在市面上接受到

一篇文章,读懂定位理论 | 到底什么是定位?

一篇文章,读懂定位理论 | 到底什么是定位?

定位二字,不断出现在各类圈层的朋友口中。可这个词到底是什么意思,或许没有太多人会

教你如何使用Ip地址进行精准定位

教你如何使用Ip地址进行精准定位

首先,看到这个标题,很多人可能没由的一楞,Ip地址?地位?Ip地址怎么定位?是的,没

安卓Android手机如何利用软件修改系统定位

安卓Android手机如何利用软件修改系统定位

工具/原料:1、Fake Location APPFake Location APP功能介绍:1.以ROOT环境运行,不易

虚拟定位/ Fake Location

虚拟定位/ Fake Location

某东有时候会联合发些地域性的消费券,像什么“云南消费券”、“东莞消费券”,app定

老司机揭秘手机定位技术,这下彻底明白啦!

老司机揭秘手机定位技术,这下彻底明白啦!

今天我们所处的移动互联网时代,手机成了每个人的生活标配。这些手机里,安装了形形色

原神:太香了!水神少女形象定位曝光,海灯节全新角色登场 ...

原神:太香了!水神少女形象定位曝光,海灯节全新角色登场 ...

果然是亲女儿,每次复刻的武器池都香到让人流口水​。​有点小失望,绫华皮肤竟然是四

定位凉凉了?定位为什么会定死?

定位凉凉了?定位为什么会定死?

定位凉凉了?定位为什么会定死?作者/李兴随着当今营销生态的变化,品牌呈现出全新的

百度地图宣布切换为优先运用国产北斗系统进行定位

百度地图宣布切换为优先运用国产北斗系统进行定位

IT之家 9 月 30 日消息,近日,百度地图发布了北斗卫星导航系统应用的最新进展,北斗

有什么好用的手机号码定位APP推荐吗?

有什么好用的手机号码定位APP推荐吗?

常有不少杠精说位置定位类APP打着亲情的招牌,实际上在侵犯个人隐私。但是,工具本身

手机关机拔卡仍可定位,大数据行程卡,揭开信息无处遁形的面纱

手机关机拔卡仍可定位,大数据行程卡,揭开信息无处遁形的面纱

你相信吗?将手机关机拔卡之后依旧可以定位,它就是一个隐形的GPS定位工具,放在以前

用手机就能知道你的位置,摄像头也能带定位功能,偷听偷窥神器网络热销

用手机就能知道你的位置,摄像头也能带定位功能,偷听偷窥神器网

楚天都市报11月14日讯(记者 周丹)近日,“有人利用软件通过手机非法定位他人位置”

手机号怎么定位对方在哪?分享个手机定位找人小窍门,误差仅10米

手机号怎么定位对方在哪?分享个手机定位找人小窍门,误差仅10米

生活中,有很多时候都会用到手机定位找人这种找人的方法,那么,手机号怎么定位对方在

华为上线高精度定位服务!收费仅需1元,为何网友还说不厚道?

华为上线高精度定位服务!收费仅需1元,为何网友还说不厚道?

近日,有媒体报道称,华为在会员服务中心中新增了一项全新的功能——“高精度定位”,

手机定位很简单,一张微信照片就能定位对方的位置,真的涨知识了

手机定位很简单,一张微信照片就能定位对方的位置,真的涨知识了

在日常生活中,相信有不少的朋友时时刻刻想要知道自己的另一半去了哪里?可是,自己又

这可能是把产品定位讲得最透彻的一篇文章了

这可能是把产品定位讲得最透彻的一篇文章了

产品定位,归根到底是用户定位、场景定位、价值定位、价格定位4大块。想要一款产品最

品牌定位,抢占用户心智第一步

品牌定位,抢占用户心智第一步

为了更好地经营品牌,以及更好地瞄准目标群体、向用户传递品牌价值,品牌需要做好自身

谈谈华杉对定位理解的5个误区

谈谈华杉对定位理解的5个误区

编辑导语:前几天,华与华董事长华杉围绕《定位》这本书,提出了对定位理论的5个质疑

如何做好个人定位?

如何做好个人定位?

随着粉丝经济的增长,越来越多人意识到个人IP的高价值,很多人开始有打造个人品牌的意

商业洽谈 文章投递 寻求报道
电话咨询: 15924191378
关注微信