在Native App中使用Webrtc

时间:2013-06-05 07:03:09

标签: android ios android-webview webrtc

我的问题是:

1 - 是否可以在我的Native App中使用WebView(由Native框架提供)实例,并将其扩展为支持Webrtc,

如果1为是,那么可能跟随的是动作项

1 - 在Android上构建一个webrtc,2 - 在Android WebView中扩展Javascript以耦合/绑定Webrtc调用,

请确认..

我想做的是

1 - 我们有基于webrtc的语音/视频聊天应用程序在Chrome& Mozilla桌面浏览器,因为它们都带有webrtc ...,即用户需要访问www.xyz.com,它将启动视频/语音会话,

2 - 在移动设备上同样的事情,我们想作为本机应用程序,即我们正在尝试创建一个应用程序,它将具有本机WebView实例,我们将访问www.xyz.com以获得语音/视频会议

3 - 我尝试了我在2中解释的方式,但似乎在Application框架提供的WebView实例中没有启用webrtc,所以我想添加它,这就是我的想法,< / p>

- WebView实例有一些扩展Javascript的机制,这意味着 http://dev.w3.org/2011/webrtc/editor/webrtc.html 其中一些API我需要添加到WebView中,如果我能够在Android和iOS平台上成功集成和构建Webrtc,它们的实现就会出现

请评论....

7 个答案:

答案 0 :(得分:7)

如果你想在原生应用中使用webRTC,我已经构建了一个小型的Android应用程序(https://github.com/pchab/AndroidRTC),它将后置摄像头共享到nodeJS服务器(https://github.com/pchab/ProjectRTC)。 我发现使用libjingle库的最简单方法是使用IntelliJ IDEA。我在Eclipse和Android Studio上遇到了很多问题。

答案 1 :(得分:3)

Android WebView此时不支持WebRTC API。

Java正在开展Objective-C绑定工作,但这可能无法解决您的问题。

答案 2 :(得分:3)

你将很难使用WebView,尽管它至少会出现在(更新的)Android上。 iOS上没有任何内容。

如果你想要完整的原生,你可以查看我们用IceLink完成的@ FM,听起来它可能适合你。

答案 3 :(得分:2)

使用Android L版本,只需使用Android WebView就可以了,更多信息如下: http://developer.android.com/about/versions/android-5.0.html#WebView

答案 4 :(得分:1)

我知道这个问题有点旧,但我觉得人行横道(https://crosswalk-project.org/)是在Android应用中使用WebRTC的一个很好的解决方案。人行横道做的是将Chrome浏览器编译成Android应用程序并在此Chrome中托管您的网站,因此您将支持最新的浏览器功能,如WebRTC。

答案 5 :(得分:1)

我正在构建一个带有webview和webrtc视频的原生应用。 所以通常可以构建这样的应用程序,现在chrome(webview)有官方支持https://developer.chrome.com/multidevice/webview/overview,但在编写该应用程序时我遇到了很多问题。

几乎没有问题:

  • 支持手机和操作系统版本 - 我有android 5.1.1(xperia m2)并且在运行webrtc之后出现了很多问题。在Android 6(xperia z5紧凑型)不工作..在其他手机有时工作有时不...
  • 你无法确定webview将如何运作 - 今天webrtc正在运行,但是tommorow Google可以添加一些安全规则,它不会起作用 - 它有点不稳定,正如我所见,有些东西依赖于os编译。 WebView可以独立于操作系统从商店获得更新。
  • 允许 - 有很多愚蠢的问题,基于它是本机应用程序中的浏览器这样的事实,比如 - 你不能指望来自webview的权限问题,你必须在android webview配置中实现它,并且在某些Android版本中它正在工作 - 其他不在: - )
  • “年轻产品”还有很多问题 - 例如,现在webview在设备信息显示方面存在一些问题(比如相机正面或背面),所以你必须找到解决这个问题的方法
  • 视频质量不佳 - 目前我的问题是视频质量 - 手机上的视频质量很好,低于消耗的最大资源(CPU,网络,内存)和计算机上的视频真的很差......
  • ......还有更多

所以事实是 - 是的,这是可能的,但是如果不面对很多不容易解决的问题,使用它仍然不够好。

答案 6 :(得分:0)

您实际上可以使用html5功能进行原生。因此,如果你像之前提到的那样使用Crosswalk,但如果你真的反对使用:Crosswalk / Ionic / Angular / Cordova(这很棒),你仍然可以在原生环境中使用Crosswalk来替换不一致和缺少WebViews的功能1基于Blink Engine的单一,完整的WebRTC兼容WebView。

我记得读过一些关于如何在Android Studio中使用Crosswalk的指南,这是我快速搜索的一个指南,但只有谷歌周围有一堆。 https://www.snip2code.com/Snippet/34721/How-to-use-CrossWalk-runtime-within-an-A