wx.startLocationUpdateBackground和wx.onLocationChange的结合使用

这篇具有很好参考价值的文章主要介绍了wx.startLocationUpdateBackground和wx.onLocationChange的结合使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目使用uniapp 开发微信小程序,功能要求使用实时监听地理位置,可以使用官方api(wx.onLocationChange(function callback))需要结合(wx.startLocationUpdateBackground)使用

canIUse(){
	uni.getSetting({
		success: (res)=>{
			console.log('###### getSetting ######', res)
			if(res.authSetting['scope.userLocationBackground']) {
				this.getData()
			} else {
				this.getAuthorize()
			}
		}
	})
},
getData(){
	if(wx.startLocationUpdateBackground){
		wx.startLocationUpdateBackground({
			success: (res) => {
				if (wx.onLocationChange) {
					wx.onLocationChange((res1)=>{
						console.log('onLocationChange >>>>>>>>>>>>', res1)
						this.longitude = res1.longitude
						this.latitude = res1.latitude
						this.getPolyline({longitude: this.longitude, latitude: this.latitude})
					})
				} else {
					this.errHandle()
				}
				
			},
			fail: (err) => {
				this.openSetting()
				this.errHandle(err)
			}
		})
	} else {
		this.errHandle()
	}
},
getAuthorize(){
	console.log('getAuthorize======')
	uni.authorize({
		scope: 'scope.userLocationBackground',
		success: (res)=>{
			this.getData()
		},
		fail: (err)=>{
			console.log('getAuthorize fail------',err)
			this.openSetting()
		}
	})
},
openSetting(){
	uni.showModal({
		title: '提示',
		content: '请授权获取位置',
		showCancel: false,
		confirmText: '确认授权',
		success:() =>{
			wx.openSetting({
				success: (res)=>{
					console.log('###### openSetting ######', res)
					// res.authSetting = {
					// 	"scope.userLocationBackground": true
					// }
					this.getData()
				}
			})
		}
	})
},
errHandle(err){
	if(err){
		console.log('### err ###>>>>>>>>',err)
	} else {
		// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
		this.$tip.alertBox('当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。')
	}

},

使用中如果报以下错误:
“startLocationUpdate:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json”
首先确认小程序管理后台是否开通该相关api 权限。
然后,在项目根目录manifest.json文件中要有相关的配置,例:

 /* 快应用特有相关 */
    "mp-weixin" : {
        "appid" : "wx42952526c54cfb0b",
        "setting" : {
            "urlCheck" : false,
            "minified" : true,
            "postcss" : true
        },
        "usingComponents" : true,
        "permission" : {
            "scope.userLocation" : {
                "desc" : "获取当前位置"
            }
        },
        "requiredPrivateInfos" : [
            "getLocation",
            "startLocationUpdate",
            "onLocationChange",
            "startLocationUpdateBackground"
        ],
		"requiredBackgroundModes" : ["location"],
        "optimization" : {
            "subPackages" : true
        }
    },

如果忘记配置"requiredBackgroundModes" : [“location”],就不会出现 “使用小程序期间喝离开小程序后” 该选项
wx.startLocationUpdateBackground和wx.onLocationChange的结合使用文章来源地址https://www.toymoban.com/news/detail-502593.html

到了这里,关于wx.startLocationUpdateBackground和wx.onLocationChange的结合使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序wx:for 的使用以及wx:key绑定

    wx:for基本使用 wx:for-item和wx:for-index重新命名item和index wx:key两种绑定方式以及注意事项 wx:for基本使用 业务层数据 视图层 wx:for遍历时候每一项名称为 item 每一项索引名称为 index wx:for-item和wx:for-index实现item和index重命名 wx:for-item=\\\"str\\\" 将原来名称 item 修改成 str wx:for-index=\\\"i 将原来

    2024年02月11日
    浏览(78)
  • 微信小程序弹窗提示:wx.showToast、wx.showModal、wx.showLoading的使用场景与实现

    使用场景 :常规的提示,没有确定和取消按钮。 例: 属性: title:提示的内容 icon:显示的图标,合法值有success、error、loading、none image:自定义图标的本地路径,优先级高于icon duration:提示的延迟时间 mask:是否显示透明蒙层,防止触摸穿透 success:API调用成功后的回调函

    2024年02月09日
    浏览(45)
  • 微信小程序使用本地存储方法(wx.setStorageSync()和wx.getStorageSync())

    微信小程序的本地存储可以使用wx.setStorageSync()和wx.getStorageSync()方法实现,这里为您介绍一下使用本地存储的流程。 设置数据:使用wx.setStorageSync()方法可以将数据以键值对的方式存储到本地存储中。例如,要将名为\\\"username\\\"的用户名称存储到本地存储中,可以使用以下代码:

    2024年02月11日
    浏览(54)
  • 微信小程序使用本地存储方法wx.setStorageSync()和wx.getStorageSync()

    微信小程序的本地存储可以使用wx.setStorageSync()和wx.getStorageSync()方法实现 使用wx.setStorageSync()方法可以将数据以键值对的方式存储到本地存储中: 获取数据:使用wx.getStorageSync()方法可以从本地存储中获取数据: 更新数据:要更新已经存在的数据,只需重新使用wx.setStorageSync

    2024年02月11日
    浏览(54)
  • 微信使用wx.getLocation

    1,小程序管理后台 -「开发」-「开发管理」-「接口设置」” 中完成权限申请; 2,需在 app.json 中声明其需调用的地理位置相关接口 3,在页面使用  

    2024年01月17日
    浏览(61)
  • 微信小程序中的条件渲染和列表渲染,wx:if ,wx:elif,wx:else,wx:for,wx:key的使用,以及block标记和hidden属性的说明

    1.1. 语法格式 (wx:if, wx:elif ,wx:else) 当condition条件为true时,代码块渲染显示,为false时,代码块不进行渲染. 可以结合 wx:elif=“{{condition}}” 和 wx:else来进行判断 1.2. block标记 可以使用block标记,一次性的控制多个组件的显示与隐藏,block标记本身并不进行渲染。 block并不是一个组

    2024年02月16日
    浏览(47)
  • uni-app开发微信小程序,wx.getPrivacySetting,wx.openPrivacyContract,wx.onNeedPrivacyAuthorization,隐私弹窗使用具体代码

     弹窗 代码插件已集成,即插即用, 五分钟集成进项目, 免费下载 ,欢迎大家交流  微信小程序用户隐私保护协议弹窗插件下载 首先完成组件的界面,创建一个组件文件夹 component ,然后创建一个 privacy 子文件夹,再创建一个 privacy 组件,组件是一个 全屏蒙版 加居中弹窗,弹窗

    2024年02月09日
    浏览(66)
  • 微信小程序 wx:if使用

    在微信小程序中,可以使用 wx:if 指令来控制某个元素是否需要被渲染到页面上。根据条件表达式的结果, wx:if 指令决定元素是否显示。 下面是使用 wx:if 的基本示例: 在上述代码中, wx:if 指令的值为一个条件表达式 {{condition}} ,根据该条件表达式的结果决定是否渲染 view 元

    2024年02月09日
    浏览(50)
  • 微信小程序wx.createCanvasContext废弃,使用wx.createOffscreenCanvas接口的绘制canvas 2d海报遇到的踩坑经验。

    在wxml页面写id,canvas-id已经没用了。然后像html一样,使用js获取这个canvas标签组件,在微信的js获取使用wx自带的方法。如下 

    2024年02月11日
    浏览(45)
  • Vant Cascader 级联选择使用 wx小程序

    使用vant 级联选择的主要流程就是根据options的值进行使用,如果需要自定义可以把从api获得的信息通过算法进行处理处理成options的样式就可以使用了 。 首先就是先会在微信小程序中使用vant的组件这里直接引用不做过多的介绍, 之后我们观察这个组件是由 vant-field 和 vant-c

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包