uniapp 使用定位示例详解

目录
  • 前言
  • 第一步
  • 第二步
  • 第三步

前言

业务需要用定位功能,还是持续后台定位的,所以研究了一下,深入浅出好吧,大伙直接复制粘贴拿去用就行!我把他分为在微信小程序和APP中的情况, 先发一波APP的,点赞超过10我就发个微信小程序的。

第一步

在manifest.jsop中复制这段代码,xxx是你自己的信息哦,有了这段代码,前台定位和后台定位权限都可以了。

    "mp-weixin" : {
        "permission" : {
            "scope.userLocation" : {
                "desc" : "xxx"  //描述用来干啥的
            }
        },
        "requiredBackgroundModes" : [ "location" ],
        "requiredPrivateInfos" : [
            "getLocation",
            "onLocationChange",
            "startLocationUpdate",
            "startLocationUpdateBackground"
        ]
    },

第二步

在要用的地方写 , 这个是检测手机定位打开没有的代码

				// #ifdef APP-PLUS
				// 获取是否开启定位
				let system = uni.getSystemInfoSync(); // 获取系统信息
				if (system.platform === 'android') { // 判断平台
					var context = plus.android.importClass("android.content.Context");
					var locationManager = plus.android.importClass("android.location.LocationManager");
					var main = plus.android.runtimeMainActivity();
					var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
					if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
										var main = plus.android.runtimeMainActivity();
				var Intent = plus.android.importClass('android.content.Intent');
				var Settings = plus.android.importClass('android.provider.Settings');
				var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
				main.startActivity(intent); // 打开系统设置GPS服务页面
					}
				} else if (system.platform === 'ios') {
					var cllocationManger = plus.ios.import("CLLocationManager");
					var enable = cllocationManger.locationServicesEnabled();
					var status = cllocationManger.authorizationStatus();
					plus.ios.deleteObject(cllocationManger);
					console.log("手机系统的定位没有打开");
					uni.showModal({
						title: '提示',
						content: '请打开定位服务功能',
						showCancel: false, // 不显示取消按钮
						success() {
							var UIApplication = plus.ios.import("UIApplication");
							var application2 = UIApplication.sharedApplication();
							var NSURL2 = plus.ios.import("NSURL");
							var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION");
							application2.openURL(setting2);
							plus.ios.deleteObject(setting2);
							plus.ios.deleteObject(NSURL2);
							plus.ios.deleteObject(application2);
						}
					});
				}
				// #endif

第三步

开始拿定位 ,用uni的方法

uni.getLocation({success(res)=>{
                console.log('当前位置的经度:' + res.longitude);
		console.log('当前位置的纬度:' + res.latitude);
		console.log('当前位置的速度:' + res.speed);
                console.log('当前位置的精确度:' + res.accuracy);
}) 

以上就是uniapp 使用定位示例详解的详细内容,更多关于uniapp 定位使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • uniapp微信小程序获取当前定位城市信息的实例代码

    目录 一.事先准备 二.正式代码使用 补充:UNIAPP获取当前城市和坐标 总结 一.事先准备 此处用的是腾讯地图的jdk 1.在腾讯地图开发上申请key 2. WebServiceAPI选择签名校验获取SK 3. uniapp上勾选位置接口 4.在腾讯地图上下载微信小程序javaScript SDK放入项目里 二.正式代码使用 提示:可能会出现引入jdk时报错 解决方法: *把jdk最后一行暴漏方式改为export default 引入时用import就行了* // 1.首先在需要用到的地方引

  • uniapp引入支付宝原生扫码插件步骤详解

    目录 1.打开插件市场 2.阿里云操作 开通阿里云 mPaaS 创建 mPaaS 应用 配置应用 3.配置项目 打开manifest.json 1.打开插件市场 链接:ext.dcloud.net.cn/plugin?id=2… 点击红色框按钮 绑定包名,这个包名与后续有关系,请记录下 2.阿里云操作 开通阿里云 mPaaS 打开mPaaS产品 创建 mPaaS 应用 创建一个应用效果如下 配置应用 点击你创建用的应用进去里面的配置页面 绑定刚才第一步我们绑定的包名,还有上次这个包名打包后的ap

  • uniapp实现附近商家定位的示例代码

    目录 一丶申请腾讯位置服务开发者密钥 二丶下载微信小程序JavaScriptSDK 三丶安全域名设置 四丶代码编写 4.1丶项目配置 4.2丶定义变量 4.3丶编写方法 4.4丶页面加载时调用 4.5丶数据展示 五丶真机调试效果图 有一个月没写博客了,最近在写项目,需要用到腾讯位置服务,获取附近商家位置.这里我就记录一下,实现过程. 一丶申请腾讯位置服务开发者密钥 申请地址:腾讯位置服务 - 立足生态,连接未来 官网教程:微信小程序JavaScript SDK | 腾讯位置服务  点击创建应用,

  • uniapp中常用的几种提示弹框

    目录 一.成功提示弹框 二.加载提示弹框 三.确认取消提示框 四.列表选择提示弹框 五.自定义图标 总结 一.成功提示弹框 在执行增.删.改.查等提交成功后弹出提示. uni.showToast({ title: '成功提示', //将值设置为 success 或者直接不用写icon这个参数 icon: 'success', //显示持续时间为 2秒 duration: 2000 }) 效果如下: 若icon参数值设置为none,将不显示“√”图标,只显示文字提示. uni.showToast(

  • uniapp页面通讯讲解之uni.$emit、uni.$on、uni.$once和uni.$off

    目录 注意事项 使用场景 1.在我的页面,监听事件 2.在登录页,触发事件 总结 uni.$emit(eventName,OBJECT) 触发全局的自定义事件.附加参数都会传给监听器回调. uni.$on(eventName,callback) 监听全局的自定义事件.事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数. uni.$once(eventName,callback) 监听全局的自定义事件.事件可以由 uni.$emit 触发,但是只触发一次,在第一次触

  • app场景下uniapp的扫码记录

    目录 背景 全屏扫码 uniapp自身带的api方法-uni.scanCode 支付宝插件扫码 自定义扫码 uniapp nvue自带的Barcode 操作原生的可视化控件Barcode 背景 扫码需求日益增多,为了满足客户的需求,扫码演变的多种多样,其中有二维码,条形码居中,条形码又可以细分成几种,以下记录全屏和自定义页面扫码的在uniapp的技术实现 全屏扫码 uniapp自身带的api方法-uni.scanCode uni.scanCode(OBJECT) h5平台暂不支持这种形式调起全屏

  • uniapp 使用定位示例详解

    目录 前言 第一步 第二步 第三步 前言 业务需要用定位功能,还是持续后台定位的,所以研究了一下,深入浅出好吧,大伙直接复制粘贴拿去用就行!我把他分为在微信小程序和APP中的情况, 先发一波APP的,点赞超过10我就发个微信小程序的. 第一步 在manifest.jsop中复制这段代码,xxx是你自己的信息哦,有了这段代码,前台定位和后台定位权限都可以了. "mp-weixin" : { "permission" : { "scope.userLocati

  • python playwright之元素定位示例详解

    目录 定位篇 定位的详细介绍 文本选择器定位 CSS 选择器定位 布局定位结合 CSS,也是我最喜欢的 根据元素可用 继续说说属性 定位篇 UI 自动化很多时候的苦恼都是定位不到,其实说实话我到现在有时候也是莫名其妙的定位到或者定位不到.好在这个框架定位方式的上限非常以及特别的高,这就像人有钱和没钱的区别主要在于选择权一样,有选择的人生才是幸福的.出门想开法拉利就开法拉利,想开拖拉机就开拖拉机. 定位的详细介绍 1.官方是不推荐 xpath 和 css 的,原话意思是 CSS 和 XPATH 是

  • uniapp自定义相机实现示例详解

    目录 自定义相机 起因 利用livePusher实现 使用 效果图 拓展 实现多种自定义相机 水印相机 身份证相机 人像相机 自定义相机 起因 由于最近用uniapp调用原生相机容易出现闪退问题,找了很多教程又是压缩图片又是优化代码,我表示并没有太大作用!! 于是开启了我的解决之路 利用livePusher实现 实现自定义相机 拓展性挺强的,可以实现自定义水印.身份证拍摄.人像拍摄等 这里我简单实现一个相机功能主要用于解决闪退 Tip:这里需要创建nvue文件哦~ 创建camera.nvue <

  • Python selenium 父子、兄弟、相邻节点定位方式详解

    今天跟大家分享下selenium中根据父子.兄弟.相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相对定位的问题,但从父节点定位子节点容易,从子节点定位父节点.定位一个节点的哥哥节点就一筹莫展了,别急,且看博主一步步讲解. 1. 由父节点定位子节点 最简单的肯定就是由父节点定位子节点了,我们有很多方法可以定位,下面上个例子: 对以下代码: <html> <body> <div id="A"> <!--父节

  • 微信小程序之高德地图多点路线规划过程示例详解

    调用 如何调用高德api? 高德官方给出的https://lbs.amap.com/api/wx/summary/开放文档比较详细: 第一步,注册高德开发者 第二部,去控制台创建应用 即点击右上角的控制平台创建应用 创建应用绑定服务记得选择微信小程序:同时在https://lbs.amap.com/api/wx/gettingstarted中下载开发包 第三步,登陆微信公众平台在开发设置中将高德域名配置上 https://restapi.amap.com 第四步,打开微信开发者工具,打开微信小程

  • Python深度学习实战PyQt5布局管理项目示例详解

    目录 1. 从绝对定位到布局管理 1.1 什么是布局管理 1.2 Qt 中的布局管理方法 2. 水平布局(Horizontal Layout) 3. 垂直布局(Vertical Layout) 4. 栅格布局(Grid Layout) 5. 表格布局(Form Layout) 6. 嵌套布局 7. 容器布局 布局管理就是管理图形窗口中各个部件的位置和排列.图形窗口中的大量部件也需要通过布局管理,对部件进行整理分组.排列定位,才能使界面整齐有序.美观大方. 1. 从绝对定位到布局管理 1.1 什么

  • Python深度学习实战PyQt5窗口切换的堆叠布局示例详解

    目录 1. 堆叠布局简介 1. 1什么是堆叠布局(Stacked Layout) 1.2 堆叠布局的实现方法 2. 创建多窗口切换的堆叠布局 3. 堆叠布局的主程序设计 3.1 QStackedWidget 类 3.2 建立信号/槽连接 3.3 页面控制程序 3.4 堆叠布局中的控件操作 软件项目中经常需要多种不同的图形界面,以适应不同的任务场景.选项卡控件(QTackedWidget)通过标签选择打开对应的对话框页面,不需要另外编程.堆叠窗口控件(QStackedWidget)在主程序中通过编

  • C++语言io流处理基本操作教程示例详解

    目录 一.输入输出流对象 流对象常用的处理函数 流控制字符 二.字符流操作 sstream 三. 文件流流类 四.文件指针定位 一.输入输出流对象 cout:标准输出流 cerr:标准出凑  和cout(只是用于如果是错误时要输出的) cin  :   标准输入 流对象常用的处理函数 输出字符 put() 输入字符:get() 输出字符串:write() 输入字符串getline() char ch; cin.get(ch); cout << ch<<endl; cout.put(

  • javascrip高级前端开发常用的几个API示例详解

    目录 MutationObserver API 特点 IntersectionObserver API 举个例子 图片懒加载 无限滚动 getComputedStyle() API 与style的异同 getBoundingClientRect API 应用场景 1.获取 dom 元素相对于网页左上角定位的距离 2.判断元素是否在可视区域内 MutationObserver MutationObserver 是一个可以监听 DOM 结构变化的接口. 当 DOM 对象树发生任何变动时,Mutati

  • java线程池ThreadPoolExecutor的八种拒绝策略示例详解

    目录 池化设计思想 线程池触发拒绝策略的时机 JDK内置4种线程池拒绝策略 拒绝策略接口定义 AbortPolicy(中止策略) DiscardPolicy(丢弃策略) DiscardOldestPolicy(弃老策略) 第三方实现的拒绝策略 Dubbo 中的线程拒绝策略 Netty 中的线程池拒绝策略 ActiveMQ 中的线程池拒绝策略 PinPoint 中的线程池拒绝策略 谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.uti

随机推荐