2015-02-16 16 views

risposta

0

Controllare il corretto caricamento delle cordova? il percorso per cordova js è corretto?

percorso dare come questo nel tuo index.html:.

<script type="text/javascript" src="cordova.js"> 
+0

ho già aggiungere il file index.html in cordova.js ma quando ho rimuovo il bel lavoro in del browser – Ahmer

+0

Poi controlla rendendo app Possiedi file di cordova.js nella cartella www? – Amar1989

+0

Puoi ospitare la tua app nel server tomat, quindi non dovrai rimuovere cordova js referennce dal tuo file html. – Amar1989

12

Ottenere lo stesso problema (utilizzando Chrome con l'emulatore PhoneGap scrivania Quello che vedo come accadendo è questo

Sembra che ci sia. un bug in Cordova.js che non riesce a verificare la presenza di un messaggio vuoto Quando l'app invia avvisi: gap_init: 2 gap: [0, "StatusBar", "_ ready", "StatusBar1593157203"] gap : [0 , "App", "mostra", "App1593157204"] gap : [0, "File", "requestAllPat hs", "File1593157205"] gap: [0, "networkstatus", "getConnectionInfo", "NetworkStatus1593157206"] gap: [0, "Dispositivo", "getDeviceInfo", "Device1593157207"]

e basta premi 'OK', invece di cancellare il contenuto di quella finestra di dialogo che provoca un loooooop infinito. Non conosco il significato di questi messaggi sì, dato che sono abbastanza nuovo per Cordova, ma è un inferno e sparito dal principio di minima sorpresa!

Quindi è possibile cancellare i messaggi o modificare il codice cordova.js in cui rimane bloccato nel ciclo. È inoltre possibile disattivare gli avvisi che funziona anche.

la funzione processMessage() (vedi sotto) non verifica una stringa vuota, che di per sé potrebbe andare bene, ma viene chiamata da un ciclo while che controlla solo "*" se sta per 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); 
     } 
    } 
+1

Come si disattivano gli avvisi? –

+0

basta sostituire '= + prompt ('', '..')' con '= ''; // + prompt ('', '..') ' P.S. usa 'subl .' per aprire la directory in sublime e poi usa' Ctrl + Shift + F' per trovare e sostituire tutti i prompt. –

Problemi correlati