Cordova 6.3.1 Android-приложение не запускает JavaScript

javascript android cordova

201 просмотра

2 ответа

Я бился головой о стену, если кто-то мог помочь, это было бы очень признательно!

Оба моих js-файла находятся в www / js. Файл cordova.js был создан для меня.

«E» в теле было просто для того, чтобы убедиться, что мой новый код попал туда. Я изменил букву в десятках сборок, пытаясь заставить это работать, просто чтобы убедиться, и оно всегда меняется.

index.html

<!DOCTYPE html>
<html>
<head>
<title>Device Ready Example</title>

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="example.js"></script>
</head>
<body onload="onLoad()">
    e
</body>
</html>

example.js

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

    // device APIs are available
//
function onDeviceReady() {
    alert('yo');
    document.addEventListener("volumedownbutton", onVolumeDown, false);
    // Add similar listeners for other events
}

function onVolumeDown() {
    alert('hey');
    document.body.innerHTML += '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;">asdfs</div>';

}

cordova.js

var app = {
    // Application Constructor
    initialize: function() {
        this.bindEvents();
    },
    // Bind Event Listeners
    //
    // Bind any events that are required on startup. Common events are:
    // 'load', 'deviceready', 'offline', and 'online'.
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    // deviceready Event Handler
    //
    // The scope of 'this' is the event. In order to call the 'receivedEvent'
    // function, we must explicitly call 'app.receivedEvent(...);'
    onDeviceReady: function() {
        app.receivedEvent('deviceready');
    },
    // Update DOM on a Received Event
    receivedEvent: function(id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');

        console.log('Received Event: ' + id);
    }
};

app.initialize();

Когда я запускаю приложение, я не получаю оповещений, а уменьшение громкости ничего не делает. Это то, что я получаю в консоли, когда я собираю apk

BUILD SUCCESSFUL

Total time: 4.479 secs
Built the following apk(s):
        /root/hello/platforms/android/build/outputs/apk/android-debug.apk
root@0SfCordova:~/hello# cordova -v
6.3.1

Кроме того, я установил node и cordova на пустом цифровом океане Ubuntu 14.04, используя только командную строку. Куда мне обратиться, чтобы посмотреть журналы консоли? Спасибо! Я не знаю, как отлаживать в этой среде.

Автор: user2278120 Источник Размещён: 08.11.2019 11:25

Ответы (2)


0 плюса

Удалите Onloadсобытие со страницы html. И не пишите cordova.jsфайл. Cordova автоматически создаст этот файл. Вы можете использовать следующий код:

index.html

<!DOCTYPE html>
<html>
<head>
<title>Device Ready Example</title>

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="example.js"></script>
</head>
<body>
    e
</body>
</html>

example.js

document.addEventListener('deviceready',onDeviceReady,false);

function onDeviceReady() {
   alert('yo');
document.addEventListener("volumedownbutton", onVolumeDown, false);
// Add similar listeners for other events
}
function onVolumeDown() {
   alert('hey');
}
Автор: Homen Размещён: 21.08.2016 07:31

-1 плюса

я столкнулся с той же ошибкой, она не могла работать на эмуляторе. Вот решение, которое сработало для меня, и я думаю, что оно подойдет и вам. Я использую последнюю версию Cordova 6.3.1 на моей MAC OS 10.12.

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

Автор: Botle Khauhelo Размещён: 24.10.2016 08:59
Вопросы из категории :
32x32