繁体   English   中英

iOS使用当前位置权限对话框在Phonegap应用程序中显示两次

[英]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+版本,请确保正确包含该插件。

来自PhoneGap v3.0.0 API文档

从版本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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM