![](/img/trans.png)
[英]"alert()" and "confirm()" not working with "apple-mobile-web-app-capable"
[英]Geolocation not working with apple-mobile-web-app-capable?
我有以下JS在#zip
顯示當前用戶的郵政編碼:
(function ($, geolocation) {
if (geolocation) {
geolocation.getCurrentPosition(function (position) {
$.getJSON(
"http://ws.geonames.org/findNearestAddressJSON?callback=?",
{
lat : position.coords.latitude,
lng : position.coords.longitude
},
function (data) {
$(function () {
$('#zip').text(data.address.postalcode);
});
}
);
});
}
}(jQuery, navigator.geolocation));
我也有一個JS函數來重新加載頁面:
$('.reload').click(function(){
window.location.reload(true);
});
在Mobile Safari中,這兩個功能可以很好地協同工作。 如果用戶打開網頁,它將加載用戶當前的郵政編碼。 然后,如果用戶更改位置,則用戶可以通過點擊底部按鈕來重新加載頁面。 除存在<meta name="apple-mobile-web-app-capable" content="yes">
情況外,此方法工作正常。
如果存在,會發生以下情況:
<meta name="apple-mobile-web-app-capable" content="yes">
執行此操作 我真的很想解決這個問題,但是如果這對您有幫助的話,下面是一個有效的示例:
全屏Web應用程序不重新加載(使用支持apple-mobile-web-app的應用程序)。 但是,當用戶更改位置,然后再次運行應用程序時,它將始終加載頁面。 它不會觸發reload事件,但是會在每次運行時觸發onload事件。
如果用戶讓應用程序運行並更改位置,則需要一個簡單的“再次查找我”功能,該功能只需重新運行代碼即可查找當前位置和郵政編碼。
現在-這里很重要! 我發現在iOS上,即使您告訴它僅使用新位置,該位置也經常被緩存,因此有時您會得到舊位置。 我為此創建了一個變通方法,稱為getAccurateCurrentLocation(),它使用非常相似的接口。 您可以在https://github.com/gwilson/getAccurateCurrentPosition上找到代碼-替換getCurrentPosition()十分簡單。
那應該做。
萬一其他人有困惑(如我所知),此處涉及的方法是地理位置對象的本機“ watchPosition”方法。
當用戶移動位置時,將調用watchPosition方法,您可以將zip生成器的經緯度指定為回調。
從規格:
var watchID = navigator.geolocation.watchPosition(function(position) {
do_something(position.coords.latitude, position.coords.longitude);
});
所以看起來你可以做:
var watchID = navigator.geolocation.watchPosition(function(position) {
$.getJSON(
"http://ws.geonames.org/findNearestAddressJSON?callback=?",
{
lat : position.coords.latitude,
lng : position.coords.longitude
},
function (data) {
$(function () {
$('#zip').text(data.address.postalcode);
});
}
);
});
這將實現更簡單的操作-用戶不必點擊位置按鈕,它應該在移動時已經更新。
需要明確的是,Greg的函數使用此watchPosition方法,但是如果您想了解正在使用的功能,或者使用精簡得多的本機代碼並自己進行自定義,watchPosition是您的工具。
全屏模式在WebSheet中啟動瀏覽器,該WebSheet可能具有一組單獨的地理位置權限。 也許以前您拒絕在WebSheet中共享地理位置信息,但在Safari瀏覽器中允許它。
如果我沒記錯的話,眾所周知WebSheets會不時地重置其權限,並再次提示用戶以允許每隔幾個小時讀取地理位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.