首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么gps-徽标不显示在状态栏中?

为什么gps-徽标不显示在状态栏中?
EN

Stack Overflow用户
提问于 2012-08-07 15:35:51
回答 3查看 863关注 0票数 0

我使用cordova-2.0.0,并希望定义用户位置的坐标。另外,我只想得到gps坐标,而不是网络。我该怎么做呢?为什么gps-徽标不显示在状态栏中?

我的代码index.html脚本:

代码语言:javascript
复制
function onSuccess(position) {
        var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '+ position.coords.latitude + '<br />' +
                         'Longitude: '+ position.coords.longitude + '<br />';
    }

// onError Callback receives a PositionError object
    //
function onError(error) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n';
}

// Wait for PhoneGap to load
    document.addEventListener("deviceready", onDeviceReady, false);

// PhoneGap is ready
    function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-08 14:14:38

对于更新的需求,您必须创建一个本地插件,该插件将检查GPS状态,并根据状态,您可以在您的html页面中发布警报。

有关在android上创建本地插件的教程,请访问here

票数 0
EN

Stack Overflow用户

发布于 2012-08-08 14:03:02

哦,这很容易。Option - enableHighAccuracy: true。它的工作方式:)

代码语言:javascript
复制
function onDeviceReady() {
                // Update every 3 seconds
                var options = { frequency: 3000, enableHighAccuracy: true };
                watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
            }

但是我如何使用cordova api定义提供者呢?例如:如果gps处于关闭状态,则应用程序会发出警报(“请打开gps!”);

票数 1
EN

Stack Overflow用户

发布于 2013-11-07 00:57:05

如果您在状态栏中看不到GPS徽标,那是因为GPS没有启动。可能有一个JS文件没有加载?

phonegap不是原生代码,只有三个选项可以放在watchPosition()函数上: maximumAge、timeout和enableHighAccuracy (使用GPS)。您可以只将enableHighAccuracy设置为true,以使用GPSProvider而不是NetworkBaseProvider。也许您可以分析onError函数中的错误消息,以查看在禁用GPS时是否发送了特殊消息。

编辑:在我的测试中,没有特殊的消息,只有一条超时消息:“位置检索超时。”所以我想在科尔多瓦你不能检查GPS是开着还是关着...

在我看来,Cordova/phonegap (以及所有的“跨平台”技术)不是使用GPS和其他管理器(如TelephonyManager )开发应用程序的好选择。

对于这一点,没有任何东西可以替代本机代码。

我还有一个问题:当我使用clearWatch()时GPS不会停止:下面是我的代码:

代码语言:javascript
复制
var currentTracking = false;
var idwatch = null;

function switchTracking() {
    //when button is pressed to start GPS
    if (!currentTracking) {
        currentTracking = true;
        document.getElementById('switchTracking').value = "Stop GPS"
        tracking();
    }

    //when button is pressed to stop GPS
    else {
        navigator.geolocation.clearWatch(idwatch);
        currentTracking = false;
        document.getElementById('switchTracking').value = "Start GPS"
    }
}

function tracking() {
    if (currentTracking) {
        idwatch = navigator.geolocation.watchPosition(onSuccess, onError,{  timeout: 5000, enableHighAccuracy: true });
    }
    else{
        navigator.geolocation.clearWatch(idwatch);
    }
}

function onSuccess(position) {
   // alert("Gps");

    var lat = document.getElementById('lat');
    var long = document.getElementById('long');
    lat.innerHTML = position.coords.latitude;
    long.innerHTML = position.coords.longitude;
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: ' + error.code + '\n' +
            'message: ' + error.message + '\n');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11841269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档