5

我有一个Phonegap应用程序。我包含cordova.js在 HTML 中(但不在www目录中),我正在等待deviceready被解雇,然后我正在打电话

navigator.geolocation.getCurrentPosition(successCallback,failCallback);

我收到了两个版本的对话框(按此顺序):

本机对话框 - http://i.stack.imgur.com/H5y1O.png
HTML 对话框 - http://i.stack.imgur.com/XbcmR.png

4

4 回答 4

5

如果您使用的是 PhoneGap 3+ 版本,请确保您正确包含该插件。

来自PhoneGap v3.0.0 API 文档

从 3.0 版开始,Cordova 将设备级 API 实现为插件。使用命令行界面中描述的 CLI 的插件命令为项目添加或删除此功能

于 2013-09-25T17:56:07.083 回答
0

我有同样的问题,那是因为没有成功安装 phonegap 地理定位插件。你知道怎么安装吗?请检查如何在http://docs.phonegap.com/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

于 2013-11-22T00:55:26.817 回答
0

不要在 deviceready 被触发后立即调用 getCurrentPosition。地理定位插件还没有准备好,所以 navigator.geolocation.getCurrentPosition 实际上调用了 HTML5 api,然后你会看到 HTML 对话框。在我的 ionic 项目中调用 navigator.geolocation.getCurrentPosition 之前,我执行以下操作以确保地理定位插件已准备就绪。

    var my_getposition = function() {
        if (ionic.Platform.isIOS() && !window.Coordinates) {
            $timeout(function(){ my_getposition(); }, 500);
            return;
        }
        navigator.geolocation.getCurrentPosition(...);
    }
于 2015-08-16T13:03:59.207 回答
-1

您必须运行“cordova prepare”才能更改 config.xml,它会自动生成用于地理定位插件的 cordova_plugins.js。

请注意,因为当您运行 cordova prepare 时,它​​会清除您所有的 /www 文件夹。

通常,在将代码添加到 /www 文件夹之前,您必须添加所有插件并设置环境...

于 2014-02-09T23:48:47.983 回答