获取web应用默认货币



我正在寻找一个直接,简单的解决方案,为我的用户(客户端/web)设置默认货币,基于他们的位置。不允许调用外部API.

显然,这个过程需要两个步骤:

<<ul>
  • 确定位置/gh>
  • 将位置映射到货币(即;'美元','英镑','欧元')
  • 到目前为止,我尝试使用navigator.language(参见https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language)来接收语言,然后将语言映射为货币,即de ->欧元,en ->英镑

    然而,navigator.language似乎不是正确的工具,因为它不够精确。例如,对于瑞士,它可能返回'de',瑞士的货币与欧元不同。

    欢迎大家多多指教。

    提前感谢。

    有几个选项,但它们都有缺点:

    • 您可以使用Geolocation API询问用户的位置,但是使用此API需要用户的许可(例如烦人的弹出窗口)。如果你想做的只是设置一些默认的货币设置,那么这是多余的,但如果你有其他更强大的用例来了解用户的位置,那么这可能是你的一个选择。
    • 您可以通过分析navigator.language来估计位置,然后使用它将其转换为货币。但在很多情况下,这种方法会选择错误的货币。例如,居住在美国的说西班牙语的人;任何不生活在英语国家,但希望将他们的计算机语言设置为英语的用户。
    • 如果您可以访问服务器,您可以使用用户的ip地址来获得大致位置。根据您的使用情况,您可能实际上不需要IP-to-Geo API,但像这样的离线数据库可能就足够了:https://github.com/datasets/geoip2-ipv4也有商业团体可以为您提供更大、更最新的数据库,但这需要付出代价。IP-to-Geo可能是最常见的方法,当网站想要对用户的位置做一些事情时,没有明确征求许可。
    • 与使用navigator.language的方法类似,在服务器上您可以分析传入的Accept-Language报头。

    最新更新