首页 > 解决方案 > 获取当前用户所在的国家,而不是 IP 地址

问题描述

我试图解释我的问题:我网站的客户通常是提前从他们的国家或最后一刻预订的游客,他们已经在这里了。为了向已经在这里的用户而不是在家的用户提供最后一分钟的优惠,我使用了一个 PHP 脚本,该脚本通过 IP 地址识别位置。

到目前为止没有问题,只有通过移动电话网络(漫游)连接的许多用户的 IP 地址由他们的电话公司分配并位于他们的国家,所以他们永远不会看到我想向他们展示的报价。

我已经考虑过插入一个脚本,要求通过他们的设备进行地理定位,但我想避免这个恼人的请求,因为明显的隐私问题,许多人不会接受。简而言之,让导航快速而愉快以鼓励信心总是很重要的。

有没有人有好的建议?

标签: phpgeolocation

解决方案


你可以试试geolocation API。

举个例子……


if ("geolocation" in navigator) {
  navigator.geolocation.getCurrentPosition(function(position) {
     do_something(position.coords.latitude, position.coords.longitude);
   });
} else {
  /* geolocation IS NOT available */
}

参考来自:https ://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API

根据站点点:https ://www.sitepoint.com/browser-geolocation/这个浏览器有支持。

  • 火狐 3.5+
  • 铬 5.0+
  • Safari 5.0+
  • 歌剧 10.60+
  • 浏览器 9.0+

推荐阅读