1

我在 Firefox 和 IE 中使用地理定位 API 时遇到问题。每次加载页面时,浏览器都会显示一条消息,要求允许定义我的位置。因此,每次浏览网站页面时,我都必须按“我允许”。我们网站的用户抱怨这种情况,因为它很烦人。

有什么办法可以避免显示此消息?也许我应该使用另一个地理定位 API?

4

2 回答 2

1

不可能。这适用于用户的PRIVACY POLICY

地理位置支持是可选的。这意味着您的浏览器永远不会强迫您向远程服务器透露您当前的物理位置。用户体验因浏览器而异。

这被称为位置感知浏览

来源DiveIntoHTML5

问:地理位置听起来很可怕。我可以关掉它吗?

答:当您谈论与远程 Web 服务器共享您的物理位置时,隐私是一个明显的问题。地理定位 API 明确规定:“未经用户明确许可,用户代理不得向网站发送位置信息。” 换句话说,共享您的位置始终是选择加入的。如果你不想,你不必。

这在每种浏览器中的处理方式不同,但在理论上很常见。

但是您可以使用Modernizr明智地处理它

function get_location() {
  if (Modernizr.geolocation) {
    navigator.geolocation.getCurrentPosition(show_map);
  } else {
    // no native support; maybe try a fallback?
  }
}
于 2013-10-14T11:26:52.700 回答
1

这不是代码问题。是浏览器的问题。这取决于您需要您的位置...

我已经使用 IP 来计算位置,尽管这仅对查找“国家”而不是城市有用......

我最近在 PHP 中做到了这一点。使用完整的 PHP 虽然需要在“GEOIP”上添加 PHP

<?php
//Get users IP address
$ip = $_SERVER['REMOTE_ADDR']
//Get 2 letter country code from IP
$country = geoip_country_code_by_name('$ip');
//If successful...
if ($country) {
//Write the name of the country 
echo 'This host is located in: ' . $country;
}?>

这将写入 2 个字母的国家/地区代码。更多信息在这里http://www.php.net/manual/en/function.geoip-country-code-by-name.php

希望这对您有用,具体取决于您要实现的目标,这可能对您有所帮助。

因为它并不总是成功的,所以如果它不可检索,那么放置一个“后备”默认位置是毫无价值的。

于 2013-10-14T11:45:07.723 回答