自定义 HTML5 地理位置提示

lpa*_*onj 5 html geolocation

当我正在为我的项目测试 HTML5 功能之一(地理定位)时,我意识到用户可以在不允许或拒绝的情况下关闭提示,这违背了提示的全部目的。

因为在我的项目中,我想根据用户的位置动态地向用户显示数据,所以这是无法完成的,因为不知道用户的响应,它不会触发任何两个回调 - 成功/错误。

所以我开始搜索是否有任何解决方案,对此有很多建议是设置超时,我尝试过,一切都很完美。然而,这里有一个小缺陷,当它达到超时期限时,所有数据都已经显示出来,当我说全部时,我的意思是一切,因为没有检测到位置。

因此,我想出了两种可能有效的解决方案,1)创建一个自定义地理位置提示,强制用户允许/拒绝共享位置,并将响应传递给浏览器以设置位置首选项 2)暂停页面加载(停止内容)从被渲染)并等待它达到超时期限或得到用户的响应

有谁知道如何实施这两种解决方案之一?

PS:抱歉,如果您不清楚,我知道我的英语很糟糕,但我可以更详细地解释。

多谢你们!

the*_*nce 4

如果您的项目是基于浏览器的,您应该无法使用自定义地理位置提示,因为恶意开发人员可能会使用该方法来欺骗用户。此外,由于 Geolocation API 是一个异步事件,因此它将在等待时继续加载页面的其余部分。

我建议使用条件语句而不是 else 子句。这样,您的脚本函数应该只在位置共享后执行,并且如果没有提供地理位置信息,您可以回退到应该发生的情况(我强烈建议这样做,因为未提供数据时就会发生这种情况)。

使用 JS 检查地理位置信息的条件语句示例:

if (navigator.geolocation) {
    // code to run if there is geolocation information
}
else{
// code to run if no geolocation info is given to the browser
}
Run Code Online (Sandbox Code Playgroud)