我在Firefox和IE中使用地理位置API时遇到问题。 每次加载页面时,浏览器都会显示一条消息,要求允许定义我的位置。因此,每次浏览网站页面时,我都必须按“我允许”。我们网站的用户抱怨这种情况,因为它很烦人。
有没有办法避免显示此消息?也许我应该使用另一个地理位置API?
答案 0 :(得分:1)
<强>不能即可。这适用于用户的 PRIVACY POLICY 。
地理位置支持是选择加入。这意味着您的浏览器永远不会强迫您向远程服务器显示当前的物理位置。 用户体验因浏览器而异。
的来源问:地理定位听起来很吓人。我可以把它关掉吗?
A:当您谈论与远程Web服务器共享物理位置时,隐私是一个明显的问题。地理位置API 明确声明:“用户代理不得向其发送位置信息 没有用户明确许可的网站。“换句话说, 共享您的位置始终是选择加入。如果你不想,你 不必。
每个浏览器的处理方式不同,但理论上很常见。
但你可以使用Modernizr
明智地处理它function get_location() {
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(show_map);
} else {
// no native support; maybe try a fallback?
}
}
答案 1 :(得分:1)
这不是代码问题。这是一个浏览器问题。 这取决于您需要的位置...如果GPS用于移动应用,则以下内容无效。
我已经使用IP来计算位置,虽然这只对找到'country'而不是city这样有用...
我最近在PHP中完成了这项工作。使用完整的PHP虽然需要PHP添加'GEOIP'
<?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
希望这对您有用,取决于您的目标,这可能对您有所帮助。
由于它并不总是成功,如果它不可检索,那么放置一个“后备”默认位置是没有价值的。