2016-08-02 27 views
0

Ich versuche, eine Test App mit der phonertc plugin for apache cordova zu bauen. Ich folge dem Wiki, also habe ich den Turn-Server erstellt, und ich habe einen socket.io-Signalisierungsserver implementiert. Alle diese Server arbeiten.phonertc ist nicht definiert - Cordova phonertc im Browser

Aber wenn ich eine Demo-Anwendung versuchen zu bauen, nach Erstellen des Projektes, das Hinzufügen Plattform und das Plugin, das Kopieren von the wiki,

var config = { 
    isInitiator: true, 
    turn: { 
     host: 'turn:turn.example.com:3478', 
     username: 'test', 
     password: '123' 
    }, 
    streams: { 
     audio: true, 
     video: false 
    } 
} 

var session = new phonertc.Session(config); 

i erhalten Fehler auf

var session = new phonertc.Session(config); 

während die Demo auf Chrome laufen lassen. Der Fehler ist

main.js:27 Uncaught ReferenceError: phonertc is not defined 

Die vollständige Version der index.html ist

<!DOCTYPE html> 

<html> 
    <head> 
     <meta name="format-detection" content="telephone=no"> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <link rel="stylesheet" type="text/css" href="css/index.css"> 
     <title>Hello World</title> 
    </head> 
    <body> 
     <div class="app"> 
      <h1>Apache Cordova</h1> 
      <div id="deviceready" class="blink"> 
       <p class="event listening">Connecting to Device</p> 
       <p class="event received">Device is Ready</p> 
      </div> 
     </div> 
     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript" src="js/index.js"></script> 
     <script src="js/socket.io-1.4.5.js"></script> 
     <script src="js/main.js"></script> 
     <script> 
      document.addEventListener('deviceready', function() { 
       doAll(); 
      }); 
     </script> 
    </body> 
</html> 

index.js und cordova.js sind die dafault aus der cordova Hallo Welt, main. js ist

var socket; 
var config; 
var session; 
function doAll(){ 
    socket; 
    function setup(){ 
     socket = io.connect("http://192.168.1.121:3000"); 
     socket.emit("add-user", {"userCode": "1"}); 

    } 
    setup(); 


    config = { 
     isInitiator: true, 
     turn: { 
      host: 'turn:192.168.1.121:3478', 
      username: 'aaaa', 
      password: 'bbbb' 
     }, 
     streams: { 
      audio: true, 
      video: false 
     } 
    } 

    session = new phonertc.Session(config); 
    session.on('sendMessage', function (data) { 
     socket.emit("private-message",{content:data,userCode:"2"}); 
    }); 
    socket.on("add-message", function(data){ 

      console.log(data.content); 
      session.receiveMessage(JSON.parse(data.content)); 
     }); 
    session.on('answer', function() { 
     console.log('Other client answered!'); 
    }); 

    session.on('disconnect', function() { 
     console.log('Other client disconnected!'); 
    }); 
    session.call(); 
} 

Ich weiß, die Code ist schrecklich, aber es ist nur eine Demo. Wie löse ich den Verweis auf phonertc? Muss ich etwas in die index.html importieren? Dank

Antwort

1

Ok, änderte ich die Linie

var session = new phonertc.Session(config); 

zu

var session = new cordova.plugins.phonertc.Session(config); 

jetzt funktioniert es.