添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
init : function ( ) { const AK = "你的AK" ; const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak=" + AK + "&s=1&callback=onBMapCallback" ; return new Promise ( ( resolve , reject ) => { // 如果已加载直接返回 if ( typeof BMap !== "undefined" ) { resolve ( BMap ) ; return true ; // 百度地图异步加载回调处理 window . onBMapCallback = function ( ) { resolve ( BMap ) ; const getCurrentCityName = function ( ) { return new Promise ( function ( resolve , reject ) { let myCity = new BMap . LocalCity ( ) myCity . get ( function ( result ) { resolve ( result . name ) // 插入script脚本 let scriptNode = document . createElement ( "script" ) ; scriptNode . setAttribute ( "type" , "text/javascript" ) ; scriptNode . setAttribute ( "src" , BMap_URL ) ; document . body . appendChild ( scriptNode ) ; } ) ;

第四步 :在需要的文件中引入,在monted中调用 getCurrentCity

import getUserLocation from "@/utils/Bmap.js"
  //开启定位
    const getCurrentCity = ()=>{
            getUserLocation.init().then(BMap=>{
                const geolocation=new BMap.Geolocation();
                geolocation.getCurrentPosition(
                function getinfo(position){
                    console.log(position)//这里就会获取到用户的经纬度信息

问题1:用户拒绝之后依然可以拿到位置信息

上面写完的时候,当用户拒绝,我们依然可以获取到定位,但是信息不是很准确
但是我们可以更加刚才获取到的信息的position.accuracy这个值进行判断
如果用户拒绝了position.accuracy这个值为null,如果不拒绝是有值的,亲测可用哈哈哈

  //开启定位
    const getCurrentCity = ()=>{
            getUserLocation.init().then(BMap=>{
                const geolocation=new BMap.Geolocation();
                geolocation.getCurrentPosition(
                function getinfo(position){
                   if(position.accuracy){
                    //具体操作
                    }else{
                        Toast("用户拒绝获取定位");

问题2:app缓存用户信息,两次之后不在调起位置授权弹窗

关于这个问题,百度官方给的回答也是没有办法的,因为ios 会缓存用户授权信息,所以两次之后就不会在吊起这个授权弹窗,
但是安卓会每次吊起

在这里插入图片描述
在这里插入图片描述
http://www.skyfox.org/html5-geolocation-safari-user-permission-prompt.html
这篇文章的解决方案是:
(设置)Settings -> (通用)Genera -> (重置) Reset-> (重置定位于隐私)Reset Location & Privacy.
(设置)Settings ->( 隐私)Privacy 开启 Location Services.

但是我测试不好使,只能卸载重装

问题2转自 Lvan-Zhang

根据经纬度获取citycode等信息

//vue.config 中定义接口BdMap===http://api.map.baidu.com
	           Api.get('/BdMap/reverse_geocoding/v3',{
                            ak:'你的ak ',
                            output:'json',
                            coordtype:'wgs84ll',
                            location:lat+','+lng
                        }).then(res=>{
                            console.log(res.result.cityCode;,'-----');
                    文章目录h5如何获取用户定位信息问题1:用户拒绝之后依然可以拿到位置信息问题2:app缓存用户信息,两次之后不在调起位置授权弹窗根据经纬度获取citycode等信息h5如何获取用户定位信息为了安全稳定一些,使用百度地图第一步: 创建应用登录百度开发者平台,创建应用第二步输入应用名称,选择浏览器端,完成之后,提交返回我的应用,会看到和上面一张图一样的,有一个AK,第三步:在项目中创建Bmap.jsexport default {    init: function (){
				
场景:微信7.0 苹果可以获取到定位 安卓获取不到定位 原因:微信升级7.0做了安全限制 导致使用http的定位不能正常使用 解决办法:升级https 且是正规的SSL证书 自签名的证书 证书链不完整也是不行的 注意:页面使用jssdk都需要使用https调用 微信升级7.0之前 公众号网页一直稳定的运行,升级7.0以后问题爆发 体现在使用高德地图上无法获取定位问题,打印高德地图返回的信...
1:钉钉线上调试返回数据格式为下图所示 想要获取mobile的手机号是通常代码是写成res.result[0].mobile,这样写法是错误的,要写成res[0].mobile才可以获取到。 如果想在api调用处成功之后再去调用其他方法,直接用this.aaa()这样也会报错,要在方法最前面加一行let that = this,然后用that.aaa()才可以调通。具体代码如下图所示: 注:钉钉所有微应用api获取数据方法均是这样 <p id="demo">点击这个按钮,获得您的位置:</p> <button onclick="getLocation()">试一下</button> <div id="mapholder"></div> <script src="http://maps.goog
### 回答1: Uniapp是一款跨平台的应用开发工具,可同时支持微信小程序、支付宝小程序、H5、App等多个平台。对于H5平台获取用户信息,我们可以通过uni.login()方法来获取用户信息。 uni.login()方法会向服务器发起请求,获取用户的唯一标识和会话密钥。我们可以通过这些参数来获取用户信息,具体步骤如下: 1. 在uni.login()方法的成功回调函数里,获取用户的code。示例代码: uni.login({ provider: 'weixin', success: function (loginRes) { console.log(loginRes.code); 2. 在服务器端根据code获取用户的唯一标识和会话密钥。一般我们可以通过微信公众平台提供的接口来实现。 3. 在H5端使用uni.request()方法向服务器请求获取用户信息。示例代码: uni.request({ url: 'https://yourserver.com/getUserInfo', method: 'POST', data: { code: loginRes.code, // 其他参数 success: function (res) { console.log(res.data); 4. 在服务器端返回用户信息后,在请求的成功回调函数里对用户信息进行处理。根据需要可以将用户信息存储在本地或者发送给后端处理。 以上就是通过uniapp H5获取用户信息的基本流程。需要注意的是,在实际开发中需要进行安全验证和错误处理,确保系统的安全性和可靠性。 ### 回答2: uniapp是一款跨平台的开发框架,可实现在不同的平台中构建多种应用程序。在其中,可以通过H5页面获取用户信息并对其进行管理和操作。以下是实现方法: 1.在app.vue中添加代码: onLaunch: function () { uni.login({ success: res => { uni.getUserInfo({ provider: 'weixin', success: function (infoRes) { console.log(infoRes.userInfo) 2.打开微信开发者工具中的详情->本地设置->勾选不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书,允许在本地运行调试。 3.在项目根目录下的vue.config.js文件中添加配置: devServer: { disableHostCheck: true, port: 8080, 以上是获取用户信息的简单方法,可以应用于不同的H5页面。平台不同所需要的配置会有所不同,需要根据具体的开发需求进行调整。通过以上操作我们就能在uniapp h5页面中获取用户信息并进行功能的应用了。 ### 回答3: Uniapp是一款便捷的开发框架,旨在帮助开发人员快速地开发跨平台的应用程序。在Uniapp框架中,我们可以使用H5端来获取用户信息。 首先,我们必须在H5端获得用户授权,以便可以获取用户的基本信息。要获得用户授权,我们需要执行以下步骤: 1. 创建一个按钮或其他触发授权的元素,并为其添加事件监听器。 2. 在点击事件监听器中,我们需要调用微信的授权API来获取用户信息。具体地,我们可以使用`uni.getUserInfo()`方法来获取。 3. 在获取用户信息后,我们可以将其保存到本地缓存中,以便在后续的操作中使用。 下面是一个简单的示例代码: ```javascript <template> <button @click="getUserInfo">获取用户信息</button> </template> <script> export default { methods: { getUserInfo() { uni.getUserInfo({ success: function(res) { uni.setStorageSync('userInfo', res.userInfo) </script> 在上面的代码中,我们创建了一个按钮,当用户点击按钮时,会调用`getUserInfo`方法来获取用户信息。在`getUserInfo`方法中,我们使用`uni.getUserInfo()`方法来获取用户信息获取成功后,将用户信息保存在本地缓存中。 此外,我们还可以使用`uni.login()`方法来获取用户的登录凭证(code),并将其发送到后端服务器,以便进行用户认证。根据后端服务器的要求,我们还可以发送用户信息等其他参数。 总之,Uniapp框架提供了很多方便的API来帮助我们获取用户信息,让我们开发应用程序更加高效、便捷。