• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在 WebKit(WkWebview) 中为不支持的 webRTC JS API 提供 native 支持

[复制链接]
菜鸟教程小白 发表于 2022-12-11 16:41:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

目标:

为 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap