OGeek|极客世界-中国程序员成长平台

标题: ios - 如何在 WebKit(WkWebview) 中为不支持的 webRTC JS API 提供 native 支持 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 16:41
标题: ios - 如何在 WebKit(WkWebview) 中为不支持的 webRTC JS API 提供 native 支持

目标:

为 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 它有自己的原生视频 View ,但我想在 webview 内的 HTML 元素中显示视频。

AppRTC 也不提供视频流...即使我可以从中获取流。如何将流提供给 wkwebview 是一个挑战,因为它的 RTC 仅评估 JavaScript 我认为它是不可能的。

所以我整合了CocoaHTTPServer我正在考虑找到一种方法将其流式传输到 WkWebView。

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



Best Answer-推荐答案


您可以使用 plugin iosRTC适用于 iOS 和适用于 android 的人行横道,但我们没有找到跨平台插件:/

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

还有一个带有cordova的示例项目:https://github.com/apizee/ApiRTC-mobile

关于ios - 如何在 WebKit(WkWebview) 中为不支持的 webRTC JS API 提供 native 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37695739/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4