账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    navigator.geolocation.getCurrentPosition()首页没有执行这个方法 ,再次刷新 才可执行
    • 2018-03-29 00:00
    • 10
    40
    0

    问题:IOS系统首次进入页面,有进if (navigator.geolocation){}添加,但没有执行 navigator.geolocation.getCurrentPosition(this.showPosition.bind(this), this.showError.bind(this), options);
    没进入showPosition(),也没有进入showError()事件
    安卓机正常,不会出现这个问题
    代码:

      if(navigator.geolocation){
        console.log(navigator.geolocation);
      alert(1);
      const options = {
        enableHightAcuracy: false, // 指示浏览器获取高精度的位置,默认为false
        timeout: 6000, // 指定获取地理位置的超时时间,默认不限时,单位为毫秒
        maximunAge: 30000 // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。
      };
    navigator.geolocation.getCurrentPosition(this.showPosition.bind(this), this.showError.bind(this), options);
      
    } else {
      console.log('该浏览器不支持获取地理位置');
       alert('该浏览器不支持获取地理位置');
      this.cityName = sessionStorage.getItem(COMMON.CITY_NAME);
      this.goPage();
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 忽略的感觉很无助 普通会员 1楼

      navigator.geolocation.getCurrentPosition() 是 Google Maps API 提供的一种方法,用于获取当前用户在浏览器或设备上的地理位置信息。如果你的网页在首次加载时没有执行 navigator.geolocation.getCurrentPosition(),你可以通过以下步骤解决这个问题:

      1. 在 HTML 文件中引入 Google Maps API 确保你正确地设置了 Google Maps JavaScript API 地址: ```html

      2. 使用 `window.onload` 替换 `navigator.geolocation.getCurrentPosition()` 方法的首次加载事件:javascript window.onload = function() { navigator.geolocation.getCurrentPosition(function(position) { // 在这里处理地理位置信息 console.log(position.coords); }); }; 3. 在首次加载页面时,通过 `window.onload` 事件监听器获取页面加载完成后 `window` 对象的 `window.onload` 属性:javascript window.onload = function() { // 首次加载页面时,获取页面加载完成后 window 对象的 window.onload 属性 var windowLoaded = window.onload; window.onload = function() { // 当页面加载完成后,执行 navigator.geolocation.getCurrentPosition() 方法 navigator.geolocation.getCurrentPosition(function(position) { console.log(position.coords); }); }; }; `` 4. 如果在首次加载页面时navigator.geolocation.getCurrentPosition()` 方法仍然未执行,可能有以下几种情况:

      a. JavaScript 异步加载问题:在首次加载页面时,JavaScript 代码可能尚未加载完成,此时 navigator.geolocation.getCurrentPosition() 方法可能无法被触发。 b. 地理位置信息获取失败:Google Maps API 有时可能在请求地理位置信息时出现错误,例如网络错误、用户拒绝授权、请求超时等。你可以在 position.coords 属性中查看具体的错误信息。 c. 使用的 JavaScript 版本不支持 navigator.geolocation.getCurrentPosition() 方法:如果你使用的 JavaScript 版本不支持 navigator.geolocation.getCurrentPosition(),则在首次加载页面时,你需要先执行 window.location.reload()window.location.assign() 方法刷新页面,以确保 JavaScript 程序的加载和 navigator.geolocation.getCurrentPosition() 方法的正确使用。 d. 使用的浏览器不支持 Google Maps API:在首次加载页面时,你需要检查浏览器是否支持 Google Maps API。通常,只有 Chrome 和 Firefox 支持 Google Maps API,其他浏览器可能不支持。 e. 使用的浏览器阻止了 JavaScript 异步加载:浏览器可能阻止了 JavaScript 异步加载,例如阻止了 JavaScript 代码的加载和 window.onload 事件监听器的触发。你可以在浏览器设置中阻止异步加载,或者使用其他方法在页面加载完成后立即执行 navigator.geolocation.getCurrentPosition() 方法。

      总之,如果你在首次加载页面时 navigator.geolocation.getCurrentPosition() 方法仍然未执行,可能有多种原因,需要通过以下方式解决:

      a. 确保 JavaScript 异步加载正确:确保 JavaScript 代码已加载完成,且 window.onload 事件监听器已触发。 b. 确保 Google Maps API 地理位置信息获取正确:检查 position.coords 属性,确认地理位置信息是否已获取。 c. 检查浏览器支持情况:确保浏览器支持 Google Maps API,且浏览器未阻止 JavaScript 异步加载。 d. 检查浏览器设置:查看浏览器设置,确认浏览器是否阻止了 JavaScript 异步加载或 window.onload 事件监听器的触发。 e. 使用其他方法:如果上述步骤仍无法解决问题,可以尝试在页面加载完成后立即执行 navigator.geolocation.getCurrentPosition() 方法,或者在页面加载完成后立即刷新页面以确保 JavaScript 程序的加载和 navigator.geolocation.getCurrentPosition() 方法的正确使用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部