uni.getLocation和wx.getLocation方法调用无效也不返回失败的解决方案

线上已解决问题的代码 记录时间 2022.12.10

//获得地理定位信息
						uni.getLocation({
							type: 'wgs84',
							success: function(resp) {
								console.log(11111);
								//保存纬度数据
								let latitude = resp.latitude;
								//保存经度度数据
								let longitude = resp.longitude;
								console.log('经度' + latitude);
								console.log('纬度' +longitude);
							},
							fail: function(resp) {
								console.log(resp);}
						});
"permission" : {
            "scope.userLocation" : {
                "desc" : "测试"
            }
        },
		"requiredPrivateInfos": ["getLocation", "chooseLocation"]

desc 的位置对应用户授权时候的提示

插入 代码

简述过程

属实被坑了一下午。

开发微信小程序,看之前的网课。可以直接通过一下的代码成功打印出经度维度。然后一样的代码 没有任何反应,也不报错。起初以为是 微信小程序开发工具的bug。(排查未果)。后面又以为是uniapp的bug(排查未果)。

//获得地理定位信息
				    uni.getLocation({
				    	type: 'wgs84',
				    	success: function (res) {
				    		console.log('当前位置的经度:' + res.longitude);
				    		console.log('当前位置的纬度:' + res.latitude);
				    	}
				    });

最后查了微信官方的说明:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html

两个问题:

1.需要在app.json中进行声明 (解决图里第一个问题)

解决方案:

我是用的是uniapp进行的小程序开发需要增加配置

这里添加后打包会自动在 app.json中增加。

但是注意:!!

!!!!坑!!!如果只在这里勾选 会缺少这段代码,打印fail的时候控制台会报“
getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json"

"requiredPrivateInfos": ["getLocation", "chooseLocation"]

增了上面这个代码后 会提示 授权获取定位

另外一开始我直接使用这段代码也可以提示授权定位,但是还是会报上面的报错。后面试了下删掉下面这段代码可以 成功完成业务

uni.authorize({
    scope: 'scope.userLocation',
    success() {
        uni.getLocation()
    }
})

2.小程序后台权限开通(解决图里第二个问题)

小程序类目 配置

需要符合链接中的 主体开发类目 才能申请权限开通。

注意:服务类目最多添加5个,本月可添加4次。(避免次数用完的尴尬)

点击去开通,申请内容和页面自己去写了。等待开通

然后等待中。说是预计 1-3个工作日

申请权限时候的坑。周五下午四点多申请的,五点多久驳回了,理由

我没上传图片。描述比较简单。

第二次申请比较快了,我上传了图片写了很多描述用途

问题总结:

1.微信小程序这个定位相关的api两年来有过很多变动,查贴和视频课中解释的相差甚远。(所以查贴 看课要注意时间。随着时间的增长微信的api改动很多)

2.合理使用 fail 参数打印报错。(不然就会认为没有报错!!!)

3.感觉微信api更改迭代的有点太快了。貌似uniapp和HBuilder工具已经跟不上这些细节上的更新了。

分割线

补充一下:我是在个人开发者下 申请上述权限

(因为没法企业资质 没有申请企业开发者)不清楚企业开发者下 是否需要申请开通。以后有机会弄企业开发者的话再补充

ps:我是业余开发者,大佬勿喷。希望能解决大家的问题。

另外 网上的微信小程序开发的网课,大家要注意时间。好多微信的api接口这两年都有变化和限制。

最后,吐槽基础微信生态。常年做微信、支付宝的支付等第三方业务依赖项目。个人感觉微信生态的底层做得真的不如支付宝生态。各种限制和问题(奇怪的限制 奇怪的问题,浪费好多时间去了解和解决)。审核的速度和客服电话 都不如支付宝。

到此这篇关于uni.getLocation和wx.getLocation方法调用无效也不返回失败的解决方案的文章就介绍到这了,更多相关uni.getLocation和wx.getLocation方法调用无效内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 微信小程序出现wx.getLocation再次授权问题的解决方法分析

    本文实例讲述了微信小程序出现wx.getLocation再次授权问题的解决方法.分享给大家供大家参考,具体如下: 首先,在page外定义一个公共函数用于发送获取位置的请求 var getLocation = function (that) { wx.getLocation({ type: 'wgs84', success: function (res) { // 经纬度 var latitude = res.latitude var longitude = res.longitude var a

  • uni.getLocation和wx.getLocation方法调用无效也不返回失败的解决方案

    线上已解决问题的代码 记录时间 2022.12.10 //获得地理定位信息 uni.getLocation({ type: 'wgs84', success: function(resp) { console.log(11111); //保存纬度数据 let latitude = resp.latitude; //保存经度度数据 let longitude = resp.longitude; console.log('经度' + latitude); console.log('纬度' +long

  • Android应用中clearFocus方法调用无效的问题解决

    clearFocus 无效? EditText在focus与非focus的时候,显示效果是不同的:focus的时候光标是闪的,而且我们通常也会给它设置selector,focus的时候给它加上边框之类的. 通常当我们触摸EditText之外的View时,需要清除EditText的焦点.很自然的就会想到EditText.clearFocus(),然而常常并没有用.(EditText.isFocus()依然是true,光标也依然在跳跃...) clearFocus的实现 clearFocus的调用栈

  • 解决@Cacheable在同一个类中方法调用不起作用的问题

    @Cacheable在同一类中方法调用无效 上述图片中,同一个类中genLiveBullets()方法调用同类中的queryLiveByRoom()方法,这样即便标识了Cacheable标签,再次调用时也没有走缓存. cacheable不支持内部方法调用的方式,需要修改为把请求缓存的改成service方式,Aservice中的genLiveBullets()调用Bservice中的queryLiveByRoom() 见下图,已测试再次调用时为走的缓存. @Cacheable的使用总结 @Cach

  • 微信小程序 wx.request(接口调用方式)详解及实例

    微信小程序 wx.request----接口调用方式 最近开发了一个微信小程序版的任务管理系统,在向Java后台发送接口时遇到了一些问题,在这里做一个简单的总结. 官方接口 官方给出的接口叫做wx.request,请求方式比较简单,下面是官网给出的请求实例. wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: { 'content-type': 'application/json' },

  • 微信小程序wx.navigateTo方法里的events参数使用详情及场景

    个人理解wx.navigateTo方法里的events参数使用详情及场景 微信小程序在2.7.3版本wx.navigateTo这个方法中新增了events这个属性 微信官方文档里面写的很模糊,在微信公众平台的社区里也有一些人在问,我第一次看到也是先百度了一下使用场景,搜到的也只是copy官方文档的抄袭党,并没什么卵用,相信大家都是看的一头雾水,所以用业余时间研究了一下,以下仅代表个人的理解,如果有更好的想法或者使用不当的地方希望大家提出防止我的个人想法误导大家 个人理解这个新增的属性使用的场景就

  • 浅谈Java方法调用的优先级问题

    实现Java多态性的时候,关于方法调用的优先级: 我们这样假设下,super(超类).this(当前类对象).show(方法).object(对象),方法调用优先顺序: ①this.show(object)>②super.show(object)> ③this.show((super)object)>④super.show((super)object) 先看以下代码 class ParentCls { public String show(ChildA obj){ return &quo

  • 实例讲解Ruby中的钩子方法及对方法调用添加钩子

    钩子方法有些类似事件驱动装置,可以在特定的事件发生后执行特定的回调函数,这个回调函数就是钩子方法(更形象的描述: 钩子方法可以像钩子一样,勾住一个特定的事件.),在Rails中before\after函数就是最常见的钩子方法. Class#inherited方法也是这样一个钩子方法,当一个类被继承时,Ruby会调用该方法.默认情况下,Class#inherited什么都不做,但是通过继承,我们可以拦截该事件,对感兴趣的继承事件作出回应. class String def self.inherit

  • jquery.Ajax()方法调用Asp.Net后台的方法解析

    利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法.先来个简单的实例热热身吧. 1.无参数的方法调用asp.net code: 复制代码 代码如下: using System.Web.Script.Services; [WebMethod]   public static string SayHello()   {        return "Hello Ajax!";   }  using System.Web.Script.Services; [WebMe

  • 详解Struts2动态方法调用

    动态方法就是一个Action对应多个请求,减少Action的数量 1.指定method属性 <action name="addAction" method="add" class="com.venn.action.HelloWorldAction"> <result>/jsp/add.jsp</result> </action> 2.感叹号(!)方式(不推荐使用) <action name=&

随机推荐