Tôi đang xây dựng một tập lệnh nhỏ mà khách hàng sẽ cài đặt trên trang của họ. Định vị địa lý là không cần thiết cho nó, tuy nhiên nếu nó tồn tại nó sẽ là tốt đẹp để có. Có cách nào để tôi kiểm tra xem trang khách hàng có yêu cầu thông tin vị trí địa lý hay không và liệu người dùng đã chọn cho phép nhận được lat & lon mà không tạo lời nhắc khác?Kiểm tra xem Vị trí địa lý có được phép và nhận Lat Lon
Trả lời
Nó không phải là có thể với các API định vị nhưng nó có thể với sự cho phép API mới
Mã này rất hữu ích nếu bạn muốn thử để nhận được tọa độ nhưng không muốn làm phiền người sử dụng với một hộp thoại nhắc cuz tọa độ mà không phải là quan trọng và cũng có thể dự phòng để geoIP
function getCoords(){
return new Promise((resolve, reject) =>
navigator.permissions ?
// Permission API is implemented
navigator.permissions.query({name:'geolocation'}).then(permission =>
// is geolocation granted?
permission.state === "granted"
? navigator.geolocation.getCurrentPosition(pos => resolve(pos.coords))
: resolve(null),
reject) :
// Permission API was not implemented
reject(new Error("Permission API is not supported"))
)
}
getCoords().then(coords => console.log(coords))
này sẽ giải quyết để null nếu phép vẫn chưa được cấp, đúc một lỗi nếu một số mã javascript đã không được hỗ trợ bởi trình duyệt và giải quyết các tọa độ nếu nó đã được cấp
Bạn có thể phát hiện xem đối tượng địa lý có tồn tại hay không bằng cách kiểm tra đối tượng cửa sổ.
if('geolocation' in window){
navigator.geolocation.getCurrentPosition(...);
}
Điều này sẽ khiến người dùng yêu cầu họ muốn chia sẻ vị trí của họ với trang của bạn.
Nếu vị trí địa lý không có sẵn trong trình duyệt, điều này sẽ không chạy chút nào.
EDIT Nếu bạn đã nhắc người dùng trên trang này tải trang để cho phép truy cập vị trí địa lý, nó sẽ KHÔNG nhắc bạn lần nữa. Nếu người dùng điều hướng đi và quay lại trang này, nó sẽ nhắc họ lại.
Bạn có thể thực hiện các cuộc gọi tiếp theo tới API mà không cần nhắc trong phiên trang đó.
Tôi không nghĩ anh ấy quan tâm nếu trình duyệt hỗ trợ hay không - anh ấy muốn biết nếu trong trường hợp trình duyệt hỗ trợ nó, anh ấy có thể gọi 'getCurrentPosition() '* không có dấu nhắc bởi vì trang web đã gây ra một dấu nhắc như vậy trước. – ThiefMaster
@ThiefMaster. Đó không phải là một downvote trừ khi bạn đặt câu hỏi. Ý định của người hỏi câu hỏi không rõ ràng. Trong trường hợp đó, tuy nhiên, vui lòng xem cập nhật của tôi. – tkone
@TheifMaster thats correct – Stefan
Theo API nó không thể tìm hiểu của người dùng đã được phép trang web hiện tại để lấy vị trí của người sử dụng mà không gây ra một dấu nhắc nếu anh ấy có không. Xem Endless answer
Tôi khuyên bạn nên cho phép người dùng chuyển đối số khi nhúng tập lệnh cho biết liệu có nên sử dụng tính năng định vị địa lý hay không.
Có hay không bạn được nhắc có vẻ phụ thuộc vào trình duyệt và cài đặt 'bảo mật' nào. Safari 6 có 3 cài đặt: nhắc một lần cho mỗi trang web, nhắc một lần cho mỗi trang web mỗi ngày và từ chối. Chrome 23 có 3 cài đặt: cho phép tất cả, hỏi và từ chối tất cả. Chắc chắn sẽ nhận được tốt nếu có một cách để kiểm tra xem nó đã được cho phép mà không làm phiền người dùng.
- 1. Làm thế nào tôi có thể nhận được vị trí (lat, lon) của một checkin được đăng trên twitter?
- 2. Vị trí địa lý với IPv6?
- 3. lat/lon để utm để lat/lon là vô cùng thiếu sót, làm thế nào đến?
- 4. Chuyển đổi Lat/Lon thành MGRS
- 5. Bộ lọc khoảng cách địa lý của ElasticSearch với nhiều vị trí trong mảng - có thể?
- 6. Kiểm tra chức năng Android; gửi vị trí địa lý đến trình giả lập
- 7. kiểm tra xem người dùng có cho phép ứng dụng sử dụng vị trí của họ
- 8. Nhận lon/lat từ pixel coords trong Google Static Map
- 9. Có cách nào để thực hiện mã hóa địa lý theo lô (nhận lat/lon theo địa chỉ và ngược lại) không?
- 10. Cách nhận Lat, Dài vị trí được nhấp bằng tờ rơi Api
- 11. cách kiểm tra vị trí địa lý trên trình mô phỏng
- 12. Cách nhận vị trí địa lý của tôi trong bash
- 13. Chuyển đổi lat/lon thành pixel và quay lại
- 14. Chuyển đổi lat/lon thành zipcode/tên vùng lân cận
- 15. Truy vấn những thứ gần vị trí địa lý?
- 16. Làm cách nào để lưu trữ điểm định vị lat-lon trong tài liệu cho tìm kiếm GAE?
- 17. Triển khai vị trí địa lý HTML5
- 18. Khu vực địa lý Tên của một thành phố để có được Lat và Long
- 19. Vị trí địa lý của Phonegap Lỗi: timeout
- 20. API vị trí địa lý trên iPhone
- 21. Nhận giá trị XY từ Point Geometry hoặc Địa lý
- 22. Nhập biểu mẫu Javascript - GPS - Vị trí địa lý
- 23. kiểm tra xem cài đặt vị trí đã bị tắt trong trình duyệt của người dùng
- 24. Vị trí địa lý dựa trên Địa chỉ IP - PHP
- 25. kiểm tra bản đồ google Định vị địa lý V3 tại địa phương?
- 26. Nhà cung cấp vị trí địa lý cho Firefox cho phép nhập thủ công
- 27. Bất kỳ cách nào khác để kiểm tra xem nhà cung cấp vị trí mạng có được bật không?
- 28. Nhận địa chỉ Bản đồ hoặc Địa chỉ Vị trí trong Android
- 29. Kiểm tra xem 'Truy cập vào vị trí của tôi' đã được bật chưa - Android
- 30. Tính khoảng cách giữa hai vị trí địa lý
Đây là một cách tiếp cận tiện dụng nhưng - vì đó là một API khá mới - điều quan trọng là phải đề cập đến các vấn đề tương thích có thể xảy ra. Ví dụ: http://caniuse.com/#feat=permissions-api – Mario