2015-02-16 9 views

Antwort

0

Überprüfen Sie Ihre Cordova js richtig geladen? ist der Weg für Cordova js ist richtig?

geben Pfad so in Ihrer index.html.

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

i bereits die cordova.js Datei in index.html hinzufügen, aber wenn ich es die Arbeit fein in Browser entfernen – Ahmer

+0

Dann überprüfen, während app machen Sie haben cordova.js Datei in Ihrem www-Ordner? – Amar1989

+0

Sie können Ihre App in Tomat Server hosten, dann müssen Sie Cordova Js Referenz aus Ihrer HTML-Datei entfernen. – Amar1989

12

Erste das gleiche Problem (mit Chrome mit dem phonegap Desktop-Emulator Was ich sehe, wie geschieht, ist dies

scheint es zu sein. Ein Fehler in Cordova.js, der nicht nach einer leeren Nachricht sucht Wenn die App Warnungen sendet: gap_init: 2 Lücke: [0, "StatusBar", "_ ready", "StatusBar1593157203"] Lücke: [0 , "App", "show", "App1593157204"] Lücke: [0, "Datei", "requestAllPat hs“, "File1593157205"] Lücke: [0, "network", "GetConnectionInfo", "NetworkStatus1593157206"] Lücke: [0, "Gerät", "getDeviceInfo", "Device1593157207"]

und einfach Klicken Sie auf "OK", anstatt den Inhalt dieses Dialogfelds zu löschen, um einen endlosen Looooop zu erzeugen. Ich weiß nicht, welche Bedeutung diese Botschaften haben, ja, ich bin ziemlich neu für Cordova, aber es ist die Hölle und vom Prinzip der geringsten Überraschung verschwunden!

So können Sie die Nachrichten löschen, oder ändern Sie den cordova.js Code, wo es in der Schleife stecken bleibt. Sie könnten auch die Warnungen ausschalten, die auch funktionieren.

Die Funktion processMessage() (siehe unten) testet nicht auf eine leere Zeichenfolge, die an und für sich gut sein kann, aber sie wird von einer while-Schleife aufgerufen, die nur nach "*" sucht 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

Wie schalte ich die Warnungen aus? –

+0

ersetzen Sie einfach '= + prompt ('', '..')' mit '= ''; // + Eingabeaufforderung ('', '..') ' P.S. Verwenden Sie 'subl.', um das Verzeichnis in sublime zu öffnen, und verwenden Sie dann 'Strg + Shift + F', um alle Eingabeaufforderungen zu suchen und zu ersetzen. –

Verwandte Themen