Слушатель событий для функции devicemotion не работает - PullRequest
0 голосов
/ 19 мая 2019

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

if (window.DeviceMotionEvent) {
    console.log("devicemotion was defined");
};

Консоль записала текст, но не этот текст:

var x, y, z;
var interval;
var arr = {'data':[]};
var ON = false;


window.addEventListener("devicemotion", function(event){
        x = event.accelerationIncludingGravity.x;
        y = event.accelerationIncludingGravity.y;
        z = event.accelerationIncludingGravity.z;
        console.log(x,y,z)
        }
    ,true);

Редактировать: Этот код скриптанаходится в нижней части HTML-файла, расположенного в каталоге шаблонов.HTML работает на Джанго.

Весь сценарий (некоторые закомментированы, потому что прослушиватель событий не работает)

<!--Clientside script-->
<script>
var x, y, z, alpha, gamma, beta;
var interval;
var arr = {'data':[]};
var ON = false;


window.addEventListener("devicemotion", function(event){
        //x = event.accelerationIncludingGravity.x;
        //y = event.accelerationIncludingGravity.y;
        //z = event.accelerationIncludingGravity.z;
        console.log(event)
        }
    ,true);
window.addEventListener('deviceorientation', function(event){
        alpha = event.alpha;
        gamma = event.gamma;
        beta = event.beta;
        }
    ,true);


//Events that are running always
if (window.DeviceMotionEvent) {
    console.log("devicemotion was defined");
};

if (window.DeviceOrientationEvent) {
  console.log("GyroScope was defined");
};

$('input').on('click', function(){
    if(ON==true){
        ON=false;
    } else {
        ON=true;
    }
});

//Main function,
//Creates list of sensor data.
function mainFunc(){ /*
    if(ON=true){
        interval = setInterval(() => {
            arr['data'] = arr['data'].concat([x,y,z,alpha,gamma,beta]);
            if(arr['data'].length >=30){
            send();
            console.log(arr);
            }
            console.log([x,y,z,alpha,gamma,beta]);
        }, 200);
    } else {
        clearInterval(interval);
    }
    */
}

//Ajax get request
//Checks for a response and animates the indicator accordingly.
function send(){
    pack = arr['data'];
    arr['data'].length = 0;

    $.ajax({
                url: "{% url 'detect' %}",
                data: arr,
                async: false,
                success: function(data){
                    if (data==true){
                        $('#indicator').fadeIn('slow');
                        $('#indicator').fadeOut('slow');
                    }
                }
    })

};
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...