Javascript iOS使用当前位置权限对话框在Phonegap应用程序中显示两次
我有一个Javascript iOS使用当前位置权限对话框在Phonegap应用程序中显示两次,javascript,ios,cordova,geolocation,Javascript,Ios,Cordova,Geolocation,我有一个Phonegap应用程序。我正在HTML中包含cordova.js(但不在www目录中),我正在等待devicerady被触发,然后我正在打电话 navigator.geolocation.getCurrentPosition(successCallback,failCallback); 我收到两个版本的对话框(按此顺序): 本机对话框- HTML对话框-如果您使用的是PhoneGap的3+版本,请确保正确包含插件 从: 从3.0版开始,Cordova将设备级API作为插件实现。使用命
Phonegap
应用程序。我正在HTML中包含cordova.js
(但不在www
目录中),我正在等待devicerady
被触发,然后我正在打电话
navigator.geolocation.getCurrentPosition(successCallback,failCallback);
我收到两个版本的对话框(按此顺序):
本机对话框-HTML对话框-如果您使用的是PhoneGap的3+版本,请确保正确包含插件 从: 从3.0版开始,Cordova将设备级API作为插件实现。使用命令行界面中描述的CLI的plugin命令为项目添加或删除此功能
我也有同样的问题,那是因为没有成功安装phonegap地理定位插件。你知道怎么安装吗?请检查如何在上运行“cordova prepare”以更改config.xml,它将自动生成用于地理位置插件的cordova_plugins.js 只需小心,因为当您运行cordova prepare时,它将删除您的所有/www文件夹
通常,在将代码添加到/www文件夹之前,您必须添加所有插件并设置环境 不要在deviceready启动后立即调用getCurrentPosition。地理位置插件还没有准备好,所以navigator.geolocation.getCurrentPosition实际上调用HTML5API,然后您会看到HTML对话框。在我的爱奥尼亚项目中调用navigator.geolocation.getCurrentPosition之前,我会执行以下操作以确保地理位置插件已准备就绪
var my_getposition = function() {
if (ionic.Platform.isIOS() && !window.Coordinates) {
$timeout(function(){ my_getposition(); }, 500);
return;
}
navigator.geolocation.getCurrentPosition(...);
}
啊!!这太完美了。我不敢相信我错过了这个。@brandonjp如果你错过了插件的安装,那么这两条消息怎么会出现在你的面前?我已经按照文档中的描述安装了这个插件,我仍然有上面提到的两条消息。有什么想法吗?您好,如何使用Cordova在iPhone上禁用位置权限警报。