收藏
回答

如何在小程序的web-view所嵌入的网页里面获取地理位置信息?

1、小程序和公众号都是同一个主体

2、小程序用的是小程序的appid,h5网页里面配置wx.config时用的是公众号的appid和appsecret

3、公众号里面已经配置了ip白名单,并且配置了JS接口安全域名和网页授权域名

4、直接在微信里面打开该h5链接能获取到地理位置信息,但是如果嵌入web-view中无任何反应

        wx.config({"appId":"此处隐藏","timestamp":"1728295927","nonceStr":"此处隐藏","signature":"1cf18d90e7cc1614391b850c41dd36bc3811367a","jsApiList":["checkJSApi","openLocation","getLocation"]});
	wx.ready(() => {
		wx.getLocation({  
			  type: 'wgs84', // 返回可以用于`wx.openLocation`的经纬度  
			  success: function(res) {  
				const latitude = res.latitude;  
				const longitude = res.longitude;  
				alert(latitude+"----"+longitude)
				// 你可以将经纬度信息传递给webview页面,或者在这里进行后续处理  
			  },  
			  fail: function(err) {  
				console.error('获取位置信息失败:', err); 
				alert("获取位置信息失败"+err)
			  },
			  complete: function(res){
				  console.log("执行完成:"+res)
			  }
		});
	});

查看控制台可以看到以下信息:

如果我在控制台中直接执行以下代码

               wx.getLocation({  
      			  type: 'wgs84', // 返回可以用于`wx.openLocation`的经纬度  
      			  success: function(res) {  
      				const latitude = res.latitude;  
      				const longitude = res.longitude;  
      				alert(latitude+"----"+longitude)
      				// 你可以将经纬度信息传递给webview页面,或者在这里进行后续处理  
      			  },  
      			  fail: function(err) {  
      				console.error('获取位置信息失败:', err); 
      				alert("获取位置信息失败"+err)
      			  },
      			  complete: function(res){
      				  console.log("执行完成:"+res)
      			  }
      		});
会返回undefined,如下图


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容