我有以下 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">
这样 - 邮政编码按应有的方式加载
- 用户移动位置,点击重新加载按钮
- 页面无法显示邮政编码,没有错误记录到控制台
我真的很想解决这个问题,但如果这有帮助,这里有一个工作示例: