我正在尋找一種直接、簡單的解決方案,根據用戶的位置為我的用戶(客戶端/網路)設定默認貨幣。不得呼叫任何外部 API。
顯然,這個程序需要兩個步驟:
- 確定位置
- 將位置映射到貨幣(即“美元”、“英鎊”、“歐元”)
到目前為止,我嘗試使用navigator.language(參見https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language)來接收語言,然后將語言映射到一種貨幣,即 de ->歐元,en -> 英鎊
但是,navigator.language這似乎不是正確的工具,因為它不夠精確。例如,對于瑞士,它可能回傳“de”,它與歐元具有不同的貨幣。
歡迎任何指導和想法。
提前致謝。
uj5u.com熱心網友回復:
有幾種選擇,但它們都有缺點:
- 您可以使用Geolocation API詢問用戶的位置,但使用此 API 需要用戶的許可(例如煩人的彈出視窗)。如果您只想設定一些默認貨幣設定,這有點矯枉過正,但如果您有其他更強大的用例來了解用戶的位置,那么這可能是您的一個選擇。
- 您可以通過分析
navigator.language您正在嘗試做的事情來推測位置,然后使用它來將其轉換為貨幣。但是在很多情況下,這種方法會選擇錯誤的貨幣。例如,居住在美國的講西班牙語的人;任何不在英語國家居住但更喜歡將其計算機語言設定為英語的用戶。 - 如果您有權訪問服務器,則可以使用用戶的 IP 地址來獲取大概位置。根據您的用例,您實際上可能不需要 IP-to-Geo API,但像這樣的離線資料庫可能就足夠了:https : //github.com/datasets/geoip2-ipv4還有一些商業方可以為您提供更大和更新的資料庫,但它會付出代價。當網站想要對用戶的位置做某事時,IP 到地理可能是最常見的方法,而無需明確征得許可。
- 與使用 的方法類似
navigator.language,您可以在服務器上分析傳入的Accept-Language標頭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334783.html
上一篇:Angular中的轉義字符
