кордова-плагин-шагомер - PullRequest
       2

кордова-плагин-шагомер

0 голосов
/ 01 сентября 2018

Я пытаюсь сделать приложение stepcounter в javascript с помощью cordova, но pedometer.startPedometerUpdates (successHandler, onError) всегда возвращает обработчик ошибок (никогда не successHandler)

Я использую кордова-плагин-шагомер https://www.npmjs.com/package/cordova-plugin-pedometer Там написано: Обработчик успеха выполняется, когда данные доступны, и повторно вызывается из фонового потока при поступлении новых данных.

но, как я уже сказал, мой successHandler никогда не выполняется, поэтому, по моему мнению, он не вызывается повторно или нет данных для работы, но я не знаю, как его решить.

Я знаю, что есть 2 вопроса, которые близки к моему вопросу, но нет полезных ответов. Кордова плагин Шагомеры Как использовать плагин для шагомера?

мой код:

    var app = {  
        // Application Constructor
        initialize: function() {
            document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
        },

        // deviceready Event Handler
        //
        // Bind any cordova events here. Common events are:
        // 'pause', 'resume', etc.
        onDeviceReady: function() { 

            //PEDOMETER
            var successHandler = function(data) {
                // pedometerData.startDate; -> ms since 1970
                // pedometerData.endDate; -> ms since 1970
                console.log('step');
                alert("step");
                alert(data.numberOfSteps + " " + data.distance);
                // pedometerData.distance;
                // pedometerData.floorsAscended;
                // pedometerData.floorsDescended;
            };
            var onError = function(){
                //alert("pedometer failure");
            };

            var successCallback = function (){
                console.log("success");
                alert("success");
            };
            var failureCallback = function (){
                console.log("failure");
                alert("failure");
            };
            pedometer.startPedometerUpdates(successHandler, onError);
            //pedometer.stopPedometerUpdates(successCallback, failureCallback);
            pedometer.isDistanceAvailable(successCallback, failureCallback);
            pedometer.isStepCountingAvailable(successCallback, failureCallback);
        }
app.initialize();

isDistanceAvailable, isStepCountingAvailable оба возвращают успех.

Я тестирую его на Xiaomi redmi 3 с Android Lolipop 5.0.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете попробовать что-то вроде этого:

    <script>
      let app = {

      init: function() {

        pedometer.isStepCountingAvailable(function(){
            //alert(""Data available);
        }, function(){
            alert( "Step counting is NOT available on your device");
        });


        let successHandler = function (pedometerData) {

           alert(pedometerData.numberOfSteps);

        };
        pedometer.startPedometerUpdates(successHandler, onError);

        function onError(etext) {
           alert("error="+JSON.stringify(etext));
        };

      },

  }


    document.addEventListener('deviceready', app.init, false);
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...