如何在WebKit中为不受支持的webRTC JS API提供本机支持(WkWebview)

时间:2016-06-08 07:20:18

标签: ios webrtc hybrid-mobile-app cocoahttpserver apprtcdemo

目的:

为WebKit中不受支持的WebRTC JS API提供本机支持,并通过WkWebView中加载的webapp进行WebRTC调用。

到目前为止我尝试了什么:

截至目前,webkit不支持WebRTC W3C JavaScript API。

cordova提供了一个支持webRTC的跨平台插件,但我不想跨平台方式。

有一个webRTC native framework可用,但我不想完全以原生方式进行。

到目前为止,我能够在JavaScript中覆盖 navigator.getUserMedia

navigator.getUserMedia = function(constraints, onSuccess, onError){
    myWebRTC.getUserMedia(document.getElementById('roomid').value)
}

并调用本机AppRTC SDK API以启动来自本机端的调用,并且它可以正常工作。

if let roomId=NSUserDefaults.standardUserDefaults().valueForKey("RoomId"){
    appClient = ARDAppClient(delegate: self)
    appClient?.createLocalMediaStream()
    appClient?.connectToRoomWithId(String(roomId), options: nil)
    localVideoView?.hidden = false;
    remoteVideoView?.hidden = false;
    btnDisconnect?.hidden = false;
    webview?.hidden = true;
}

以下是完整的source code

AppRTC它有自己的原生视频视图,但我想在webview中的HTML元素中显示视频。

AppRTC也不提供视频流......即使我可以通过它来获取流。如何将流提供给wkwebview是一个挑战,因为它的RTC只是评估JavaScript我觉得它不可能。

所以我已经集成了CocoaHTTPServer,我正在考虑找到一种从此流式传输到WkWebView的方法。

我们非常感谢任何有关实现目标的见解和建议!

1 个答案:

答案 0 :(得分:0)

您可以使用plugin iosRTC for iOS和crosswalk for android但我们没有找到跨平台插件:/

这里是我们的教程:https://apirtc.com/apirtc-on-cordova/

使用cordova的一个示例项目:https://github.com/apizee/ApiRTC-mobile