获取我当前位置的自定义弹出窗口
Posted
技术标签:
【中文标题】获取我当前位置的自定义弹出窗口【英文标题】:Custom Popup for get my current location 【发布时间】:2017-05-27 12:32:57 【问题描述】:我当前的站点完全取决于当前位置。现在我正在使用地理定位来获取当前位置。但在当前情况下,用户对共享位置感到困惑。所以我想创建一个自定义弹出窗口(引导程序)来获取客户端 PC 的当前位置。
我目前的代码如下:
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition, error, enableHighAccuracy:true,timeout:60000,maximumAge:0);
else
console.log("Geolocation is not supported by this browser.");
function error(error)
console.log(error);
function showPosition(position)
var latitude = position.coords.latitude,
longitude = position.coords.longitude;
console.log(latitude);
console.log(longitude);
请帮助我解决这个问题。
【问题讨论】:
代码有什么问题? 如果你想使用 bootstrap,请阅读他们的 modals,它很容易创建 @Teemu 代码运行良好,但我想创建自定义弹出窗口以获取地理位置权限,而不是来自用户的自定义位置弹出窗口。 @Roljhon 是的,我知道引导模型。但是要创建自定义弹出窗口以获取客户端 PC 权限的权限。我已经搜索了很多相同的内容,但我无法找到任何方法。 【参考方案1】:现在可以绕过浏览器的地理定位权限弹出窗口。在 Chrome 上,它看起来像这样:
用户需要先点击允许,然后您才能读取他们的位置(这是一项安全功能)。 但是,如果您绝对需要它,您可以检测权限是否已被拒绝,并向用户解释如何授予权限以及为什么它很重要。
查看this answer 到类似问题和this example 以检测“权限被拒绝”错误:
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition, positionError);
else
console.log("Geolocation is not supported by this browser.");
function showPosition(position)
// Success, can use position.
console.log("Your position is: " + position);
function positionError(error)
if (error.PERMISSION_DENIED)
console.log("Error: permission denied");
// Your custom modal here.
showError('Geolocation is not enabled. Please enable to use this feature.');
else
// Handle other kinds of errors.
console.log("Other kind of error: " + error);
function showError(message)
// TODO
getLocation();
【讨论】:
以上是关于获取我当前位置的自定义弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章
从 JComboBox 弹出窗口中获取当前突出显示的项目(未选中的项目)
如何在 MapControl 中动态使用具有多个引脚的多个自定义弹出窗口