ios - 在 PhoneGap 应用程序中初始拒绝后请求位置访问

标签 ios cordova geolocation single-page-application

我正在开发跨平台应用程序。我可以使用 Phone Gap API 请求访问位置。如果用户单击确定,那么我就可以使用 PhoneGap API 获取纬度和经度并将其发送到服务器。

但是,如果用户最初单击“不允许”,我就会遇到问题。之后,如果他尝试刷新页面,我希望设备再次显示弹出窗口以请求访问该位置。

我们如何在单页应用程序中做到这一点?

    var loadPanelMessage = ko.observable("Sipping..."),
    loadPanelVisible = ko.observable(false),
    lat = ko.observable(''),
    lon = ko.observable('');
navigator.geolocation.getCurrentPosition(onSuccess, onError);

    var onSuccess = function (position) {
    lat(position.coords.latitude);
    lon(position.coords.longitude);
    timestamp(position.timestamp);
};

function onError(error) {
    alert('code: ' + error.code + '\n' +
          'message: ' + error.message + '\n');
//How should I handle the error, so that it asks for Geolocation again?
}

最佳答案

您无法重新显示该弹出窗口,它由 iOS 显示,一旦用户点击“不允许”,您就无法强制弹出该弹出窗口。您所能做的就是让您的用户了解这种情况,并将用户引导至 iOS 设置以为您的应用启用位置服务。

这是关于这个问题的一个很好的读物: https://medium.com/on-startups/96fa4eb54f2c

关于ios - 在 PhoneGap 应用程序中初始拒绝后请求位置访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520838/

相关文章:

ios - NSImage 到 NSData,然后到 UIImage

ios - 具有透明背景的 UIModalPresentationFormSheet?

android - 如何更改 phoneGap ( Apache Cordova ) Api

javascript - 如何在没有 Xcode 的情况下手动安装 Phonegap 库?

javascript - Firefox 和 IE 之间 GeoRSS 叠加的加载时间不一致

ios - UIView边框覆盖 subview ?

ios - 流打开后如何将 NSStream (NSInputStream/NSOutputStream) 转换为 SSL?

ios - 是否可以使用 phonegap 在本地创建 .ipa 文件?

java - 基于位置的数据抓取算法

JavaScript Geolocation 在所有 Android 浏览器中都失败 - 在 iOS 和 PC 上工作