dostawanie ten sam problem (przy użyciu Chrome z emulatora PhoneGap stacjonarnego Co widzę, jak dzieje się to
Nie wydaje się być. błąd w Cordova.js, który nie sprawdza pustej wiadomości Gdy aplikacja wysyła alerty: gap_init: 2 gap: [0, "StatusBar", "_ ready", "StatusBar1593157203"] gap: [0 , "App", "show", "App1593157204"] gap: [0, "Plik", "requestAllPat" hs”, "File1593157205"] luka: [0, "NetworkStatus", "getConnectionInfo", "NetworkStatus1593157206"] luka: [0, "Device", "getDeviceInfo", "Device1593157207"]
i po prostu wciśnij "OK", zamiast wyczyścić zawartość tego okna dialogowego, co spowoduje nieskończone loooooop. Nie znam znaczenia tych wiadomości tak, ponieważ jestem całkiem nowy dla Cordova, ale to jest piekło i odszedł od zasady najmniej zaskakującej!
Dzięki czemu można wyczyścić wiadomości lub zmodyfikować kod cordova.js, w którym utknie w pętli. Możesz również wyłączyć alerty, które również działają.
Funkcja processMessage() (patrz poniżej) nie testuje pustego łańcucha, który sam w sobie może być w porządku, ale jest wywoływany z pętli while, która sprawdza tylko "*", jeśli jej Muzyka pop.
while (messagesFromNative.length) {
var msg = popMessageFromQueue();
// The Java side can send a * message to indicate that it
// still has messages waiting to be retrieved.
if (msg == '*' && messagesFromNative.length === 0) {
setTimeout(pollOnce, 0);
return;
}
processMessage(msg);
}
// Processes a single message, as encoded by NativeToJsMessageQueue.java.
function processMessage(message) {
try {
var firstChar = message.charAt(0);
if (firstChar == 'J') {
eval(message.slice(1));
} else if (firstChar == 'S' || firstChar == 'F') {
var success = firstChar == 'S';
var keepCallback = message.charAt(1) == '1';
var spaceIdx = message.indexOf(' ', 2);
var status = +message.slice(2, spaceIdx);
var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1);
var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx);
var payloadKind = message.charAt(nextSpaceIdx + 1);
var payload;
if (payloadKind == 's') {
payload = message.slice(nextSpaceIdx + 2);
} else if (payloadKind == 't') {
payload = true;
} else if (payloadKind == 'f') {
payload = false;
} else if (payloadKind == 'N') {
payload = null;
} else if (payloadKind == 'n') {
payload = +message.slice(nextSpaceIdx + 2);
} else if (payloadKind == 'A') {
var data = message.slice(nextSpaceIdx + 2);
var bytes = window.atob(data);
var arraybuffer = new Uint8Array(bytes.length);
for (var i = 0; i < bytes.length; i++) {
arraybuffer[i] = bytes.charCodeAt(i);
}
payload = arraybuffer.buffer;
} else if (payloadKind == 'S') {
payload = window.atob(message.slice(nextSpaceIdx + 2));
} else {
payload = JSON.parse(message.slice(nextSpaceIdx + 1));
}
cordova.callbackFromNative(callbackId, success, status, [payload], keepCallback);
} else {
console.log("processMessage failed: invalid message: " + JSON.stringify(message));
}
} catch (e) {
console.log("processMessage failed: Error: " + e);
console.log("processMessage failed: Stack: " + e.stack);
console.log("processMessage failed: Message: " + message);
}
}
już dodać plik index.html w cordova.js ale kiedy usunąć go grzywny na pracę w przeglądarce – Ahmer
Następnie sprawdzić robiąc aplikację masz cordova.js plik w folderze www? – Amar1989
Możesz hostować swoją aplikację na serwerze tomat, a następnie nie musisz usuwać referencji cordova js z pliku html. – Amar1989