2016-03-03 57 views
4

我必須構建一個跨平臺的對等應用程序(至少支持iOS & Android)。爲此,我正在使用科爾多瓦。目前我可以使用ZeroConf插件進行服務發現。現在我想要發現一個點對點連接。使用web的科爾多瓦對等應用程序RTC

已經使用Titanium製作了一個等效的應用程序。發現後,它使用套接字連接到發現的機器。

/* 
    Service Discovery resulting in an IP address and port number 
    ... 
*/ 

socket = Titanium.Network.createTCPSocket({ 
    hostName: discoveredHostName, 
    port: discoveredPort, 
    mode: Titanium.Network.READ_WRITE_MODE 
}); 
... 
socket.connect(); 

然而,我需要翻譯的應用科爾多瓦,因此,我需要在鈦版本中使用這些插槽的替代品。使用中間服務器不是一種選擇(僅用於發送可能使用的信號,不用於消息交換)。

我的導師建議使用webRTC,因爲它是一個簡單的標準JavaScript API,提及它適用於iOS,涉及official website which metions iOS support。我實現了它,在瀏覽器中測試它,它的功能就像一個魅力。

然而,在iOS的WebRTC測試它不工作時

var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection || window.msRTCPeerConnection; 

這個工程在瀏覽器,但在iOS這導致RTCPeerConnectionundefined我想我錯過了一些東西,因爲官方網站提到iOS支持?

回答

4

的WebRTC是不支持Safari瀏覽器,既的MacOS的iOS

看到http://caniuse.com/#search=webrtc

https://webrtc.org/native-code/ios/)引用的文章是指在iOS原生開發利用,我覺得,實現WebRTC API的庫或SDK。

使用Cordova Framework時,您無法在啓用WebView WebRTC時本機依賴,但您必須採用具有Crosswalk(例如)的Cordova WebView的特定插件或子圖。

在iOS上,一個實現w3c WebRTC API的插件是iosrtc,但它有一些issues掛起和一些限制video元素實現。

+0

好的,這就是我想的,謝謝!當然,這不會讓它變得更容易..我看到一個Cordova的WebRTC插件,會試試看。是否存在一些兼容iOS和Android的webRTC插件?請注意:這意味着無法使用webRTC與iOS,Android和PC之間的互操作性? (這超出了我的任務範圍,但純粹是好奇心)。這是我正在談論的插件:https://www.npmjs.com/package/cordova-plugin-webrtc – HyperZ

+0

我個人開發了一個使用適用於Android版Crosswalk的Cordova/Ionic應用程序,並使用cordova-plugin-iosrtc iOS版本。有幾個cordova WebRTC插件,但每個插件都有限制。 WebRTC使不同平臺上的不同設備之間的互操作性成爲可能:我的應用程序(網絡,Android和iOS)成功地相互作用。 – beaver

+0

問題是我將不得不將我的工作集成到一個大型項目中,然後整個項目不會綁定到Cordova(或Ionic),而是可以使用Titanium版本或網絡部分的Cordova版本運行。恐怕我會把整個項目綁定到科爾多瓦,因此,我只需要能夠發送文本,一個簡單的插件(理想情況下與iOS和Android兼容)提供數據通道會很好,但似乎並不存在。 – HyperZ

相關問題