4 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以嘗試使用地理定位 API 獲取用戶位置,并使用用戶的 IP 地址進(jìn)行回退,以防 API 在用戶的環(huán)境中不起作用。
const success = (position) => {
// use position
};
const fallback = () => {
// try getting it via the user's IP
}
navigator.geolocation.getCurrentPosition(success, fallback);
當(dāng)然,這完全取決于您需要多少精度。IP 地址本地化精度不高。

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
此功能僅在安全上下文 ( HTTPS )、部分或所有支持的瀏覽器中可用。
我認(rèn)為您正在嘗試在不起作用的開發(fā)模式下使用此功能。但是有一種方法可以在開發(fā)模式下解決這個(gè)問(wèn)題,那就是在你的開發(fā)模式下使用假 https。
更新(2020 年 7 月 12 日):
我在 Stackoverflow 控制臺(tái)中的地理位置對(duì)象(檢查元素)。
Geolocation 對(duì)象實(shí)際上是空的,您應(yīng)該看到它的原型用戶__proto__
.
如果您在項(xiàng)目中使用 create-react-app,則應(yīng)在.env文件中添加HTTPS=true 。它對(duì)我有用。

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
要在 Web 客戶端上查找用戶的地理位置,您可以使用HTML Geolocation API和Google Geolocation(請(qǐng)參閱 stackoverflow 上的這個(gè)問(wèn)題)。但是總是需要獲得用戶的許可才能在瀏覽器上知道他們的位置(瀏覽器位置權(quán)限)。如果用戶不允許,Geolocation api 將不會(huì)提供任何結(jié)果。
盡管允許用戶使用,但與移動(dòng)設(shè)備(使用內(nèi)置 GPS)不同,計(jì)算機(jī)上運(yùn)行的 Web 瀏覽器所產(chǎn)生的某些地理位置不會(huì)精確或什至不接近(沒有內(nèi)置 GPS)。如果用戶使用 VPN 或代理,找到精確的地理位置也將是麻煩的。
所以總結(jié)一下,我們無(wú)法得到;
每個(gè)用戶的地理位置未經(jīng)他們的許可
100% 準(zhǔn)確度,無(wú)需在其 Web 訪問(wèn)設(shè)備上使用本機(jī) GPS,并且在使用 vpn 時(shí),代理正在使用中。
添加回答
舉報(bào)