[英]iOS Use Current Location Permission dialog is shown twice in Phonegap app
我有一个Phonegap
应用程序。 我在HTML中包含cordova.js
(但不在www
目录中),我在等待deviceready
被解雇,然后我正在调用
navigator.geolocation.getCurrentPosition(successCallback,failCallback);
我正在接收两个版本的对话框(按此顺序):
原生对话 - http://i.stack.imgur.com/H5y1O.png
HTML对话框 - http://i.stack.imgur.com/XbcmR.png
如果您使用的是PhoneGap的3+版本,请确保正确包含该插件。
从版本3.0开始,Cordova将设备级API实现为插件。 使用命令行界面中描述的CLI插件命令为项目添加或删除此功能
我遇到了同样的问题,那是因为没有成功安装phonegap地理定位插件。 你知道怎么安装吗? 请查看http://docs.phonegap.com/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface上的操作方法
在触发deviceready之后不要立即调用getCurrentPosition。 geolocation插件尚未就绪,因此navigator.geolocation.getCurrentPosition实际调用HTML5 api,然后您会看到HTML对话框。 我在下面确定geolocation插件已经准备就绪,然后在我的离子项目中调用navigator.geolocation.getCurrentPosition。
var my_getposition = function() {
if (ionic.Platform.isIOS() && !window.Coordinates) {
$timeout(function(){ my_getposition(); }, 500);
return;
}
navigator.geolocation.getCurrentPosition(...);
}
您必须运行“cordova prepare”才能更改config.xml,它将自动生成将用于地理定位插件的cordova_plugins.js。
请注意,因为当你运行cordova准备它将删除你的所有/ www文件夹。
在将代码添加到/ www文件夹之前,您必须添加所有插件并设置环境...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.