我正在使用 chrome 瀏覽器和 MacOS Monterey 撰寫一個 Angular 14 應用程式,并且我正在嘗試獲取用戶在瀏覽器上的當前地理位置,以便使用@angular/google-mapsapi 顯示它。
所以在組件中ngOnInit()我有以下代碼:
ngOnInit(): void {
navigator.geolocation.watchPosition((position) => {
this.center = {
lat: position.coords.latitude,
lng: position.coords.longitude,
}
},function(positionError){
alert('User not allowed - ' positionError.message);
},{timeout:10000})
}
所以User not allowed - User defined Geolocation會顯示警報。
我試圖谷歌并閱讀stackoverflow問題,我讀到我現在必須使用ssl。
所以我使用 運行開發環境ng serve --ssl,瀏覽器要求獲得當前位置的權限,但結果相同,仍然顯示錯誤警報。
我錯過了什么?
uj5u.com熱心網友回復:
我注意到瀏覽器有一個圖示,顯示我的 MacOS 上沒有啟用定位服務,我禁用并重新啟用它,現在它可以作業了。
添加權限 api 讓我搞砸了,擁有我的常規代碼足以讓用戶允許權限然后獲取位置
uj5u.com熱心網友回復:
我認為這聽起來很奇怪,但是讓我向您展示最好的測驗方法,因此我的測驗,每次您實時保存組件/html 時都會失敗(稱為實時重新加載)。
讓我們在每次測驗中按 F5(重繪 ),你會得到你的結果,你的代碼是好的,但是你需要手動重繪 才能獲取資料,如果你只是實時重新加載頁面,你會得到類似“錯誤3,超時”,讓我們測驗一下,讓我知道它是否適合你。
我的例子:https ://stackblitz.com/edit/angular-ivy-txnone?file=src/app/app.component.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/483373.html
