Javascript 不会使用带有导航地理定位的 jQuery Mobile 加载
Posted
技术标签:
【中文标题】Javascript 不会使用带有导航地理定位的 jQuery Mobile 加载【英文标题】:Javascript won't load using jQuery Mobile with navigation-geolocation 【发布时间】:2013-06-07 20:09:02 【问题描述】:我在使用 jQuery Mobile、javascript 和获取 geolocaton 时遇到问题。
当我进入页面时,我目前正在使用以下来加载代码:
$(document).on('pageinit', function()
如果用户将可见性设置为可见,则会显示一个 ID 为可见的 div,这是我第一次用来调用地理位置的:
if ($('#visible').length)
navigator.geolocation.getCurrentPosition(sucessHandler, errorHandler);
此后,我每 20 秒调用一次地理位置:
setInterval(function()
if ($('#visible').length)
navigator.geolocation.getCurrentPosition(sucessHandler);
, 20000);
我的问题是,如果我离开某个子页面的页面,然后返回此页面,这些代码将不会再次运行。我尝试了以下方法来加载 javascript,而不是 pageinit:
$(document).on('pagebeforeshow', '#index', function()
和
$(document).on('pageinit', '#index', function()
我也尝试将它加载到索引正文中。
任何帮助将不胜感激 =)
问候,弗雷德
【问题讨论】:
【参考方案1】:首先,您可能需要考虑将navigator.geolocation.getCurrentPosition()
替换为navigator.geolocation.watchPosition()
。这将在每次设备接收到位置更新时调用您的成功或错误处理函数,而不是您需要每 20 秒 ping 它一次以查看它是否已更改。
关于页面更改,只要您使用的是多页面模板,那么在导航进出任何子页面时都应该调用处理函数。
Here’s a JS fiddle illustrating this
希望这会有所帮助!
【讨论】:
以上是关于Javascript 不会使用带有导航地理定位的 jQuery Mobile 加载的主要内容,如果未能解决你的问题,请参考以下文章
带有地理位置网站的 Flutter iOS webview 应用程序不会询问位置权限,即使 info.plist 已调整
如果用户未回答 JavaScript 地理定位小狗,如何继续执行代码?