Ich habe mir diesen Kopf für ein paar Tage geschlagen. Nachdem beim Erstellen eines neuen FileTransfer() -Objekts eine Anzahl von "Objekt nicht definiert" -Fehlern gefunden wurde, scheint das Problem einfacher zu sein - irgendwie löst das DeviceReady-Ereignis nicht aus.Cordova DeviceReady nicht feuern
Stack Overflow hat eine Menge Treffer zu diesem Thema, aber die meisten von ihnen haben mit Pre-3.x Cordova Builds zu tun, die eine andere Architektur hatten (ich bin auf 4.1.2). Ich habe die Vorschläge in den neueren Themen ausprobiert, die ich finden konnte - Entfernen und Hinzufügen von Plugins, Aktualisieren von Cordova, etc. - ohne Erfolg. Um zu versuchen, das Problem zu isolieren, ich habe den Startcode kommentiert, um nur ein paar Zeilen:
Index.HTML:
<!DOCTYPE html>
<html>
<head>
<title>Blah</title>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale=1">
<link href="res/topcoat/css/topcoat-mobile-light.min.css" rel="stylesheet">
<link href="res/css/styles.css" rel="stylesheet">
<link href="res/css/pageslider.css" rel="stylesheet">
<script data-main="js/main" src="lib/require.js"></script>
</head>
main.js:
require(["app/Application"], function (Application) {
"use strict";
document.addEventListener("deviceready", function(){
$('body').html("<p>device is ready</p>");
},true);
$('body').html("<p>waiting...</p>");
});
Anstatt "Gerät ist bereit" im Körper nach einem Bit anzuzeigen, t Der Bildschirm zeigt nur "Warten ..." an. Dies geschieht sowohl im iOS-Emulator als auch im Browser (cordova emuliert Browser).
Cordova Info:
$ cordova -v
4.1.2
Plugin Info:
$ cordova plugins
org.apache.cordova.globalization 0.3.3 "Globalization"
(ich die gleichen Ergebnisse erhalten, wenn die Globalisierung nicht da ist).
Gibt es einen anderen Ort, an dem ich suchen sollte? Ich laufe von der Kommandozeile, wenn das einen Unterschied macht.
Dank erwähnt - Dies führte mich zu meinem Problem, und es könnte auf die anfängliche Verbindung gebracht werden Problem auch. Ich habe dies auf iOS gefunden, aber nicht auf Android, wenn eine Ihrer JavaScript-Dateien auf ein Remote-Skript oder Stylesheet verweist, dann muss es in der Content-Security-Policy aufgeführt sein. Mit Android erhalten Sie eine Fehlermeldung in der Konsole. Mit iOS stirbt es einfach still und zeigt nicht an, was das Problem ist. Das Problem ist, dass es nicht zu einem der referenzierten Skripte gelangen kann. – ferdil
Danke für den Tipp. Warum passiert es? Ich habe keine Remote-Skripte –