uniapp在微信公众号中获取定位得到经纬度

1.如果项目根目录中有package.json文件,直接在终端中输入

npm install jweixin-module --save

如果没有,可以在根目录新建一个package.json文件,文件内容为

{
  "dependencies": {
    "jweixin-module": "^1.6.0"
  }
}

然后直接终端中输入命令 npm install ,按回车键即可

 

2.在页面中引入该sdk:

var jweixin = require('jweixin-module')  

然后通过后端接口获取签名,再配置config,然后使用.直接在onLoad函数中调用this.getAddress()

        //通过后端获取wx.config的配置,再通过微信的js-sdk获取经纬度
			getAddress(){
				const _this=this
				uni.request({
					method:"POST",
					header:{
						'Content-Type':'application/x-www-form-urlencoded'
					},
					url:_this.$store.state.baseurl+'/weixin/sweepLogin',
					data:{
						url: location.href
						// url: location.href.split('#')[0]
					},
					success(d){
						console.log('后端返回的wx.config的配置:',d.data)
						_this.getLocation(d.data)
					},
					fail(err){
						console.log(err)
					}
				})
			},
			getLocation(params) {
				const _this=this
				// 判断是否支持获取定位
				jweixin.config({
					debug: true,//开启debug模式.正式环境设置为false,测试环境设置为true
					"appId": params.appid,
					"timestamp": params.timestamp,
					"nonceStr": params.nonceStr,
					"signature": params.signature,
					jsApiList: ["getLocation"] //根据需要看需要哪些SDK的功能
				});
				// sdk加载完成后执行
				jweixin.ready(function(){  
					jweixin.checkJsApi({
					  jsApiList: [
						'getLocation'
					  ],
					  success: function (res) {
						if (res.checkResult.getLocation == false) {
						  alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
						  return;
						}
					  }
					});
					jweixin.error(function (res) {
					  console.log("接口调取失败")
					});
				    // 获取位置
					jweixin.getLocation({
					  type: 'wgs84',
					  success: function (res) {
						console.log('jssdk获取的位置:',res.longitude,res.latitude)
						_this.getList([res.longitude,res.latitude])//通过经纬度去做需要的事情
					  },
					  cancel: function (res) {
						alert('您已禁止获取位置信息')
					  }
					});
				});
			},

具体sdk请参考微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

后端签名算法参考:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62

注意:一定要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”,即调用后端接口的域名.

 

 

 

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
uniapp,你可以通过使用微信小程序的API来获取微信公众号的code。你可以在前端通过调用小程序的登录接口wx.login()来获取到code,然后将这个code传给后端来获取token。 具体步骤如下: 1. 在前端,使用wx.login()方法获取到小程序的code。 2. 将获取到的code传给后端,后端通过code调用微信公众号的接口获取到token和openId等用户信息。 参考代码如下: ```javascript // 在uniapp获取微信公众号的code uni.login({ provider: 'weixin', success: function (loginRes) { if (loginRes.code) { // 将code传给后端 // 调用后端接口获取token和openId等用户信息 } else { console.log('登录失败!' + loginRes.errMsg) } } }) ``` 你可以将上述代码放在需要获取微信公众号code的地方,当用户登录时,调用该代码获取code并传给后端进行处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [uniapp微信公众号H5获取code进行登录](https://blog.csdn.net/m0_55333789/article/details/129405206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ASP微信公众号授权登陆,获取OpenID,昵称,头像等相关信息完整示例](https://download.csdn.net/download/u010439874/88231886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值