如何在 Hybrid iOS 应用程序中实现 WebRTC?

Posted

技术标签:

【中文标题】如何在 Hybrid iOS 应用程序中实现 WebRTC?【英文标题】:How do I implement WebRTC in Hybrid iOS app? 【发布时间】:2016-09-17 16:23:32 【问题描述】:

我有一个使用 WebRTC 进行通信的网页。 由于有 Web 界面,我不打算开发原生应用程序,因此我决定在 Web 视图中加载网页 但是,ios WebKit 不完全支持 WebRTC API,但 android webkit 完全支持 WebRTC API,所以我可以毫无问题地加载页面。

是否有任何可用的插件,类似于桌面浏览器中可用的插件来实现这一点? 如果它在那里,那么如何将插件与 webivew 集成。 还有其他方法可以实现吗?

提前感谢您的帮助。

【问题讨论】:

这能回答你的问题吗? WebApp using webRTC for cross-platform videochat in iOS Browser and Android Chrome 【参考方案1】:

试试OpenWebRTC,他们已经构建了这个,因为它是开源的,你也可以将它用于你的项目。

在 AppDelegate 中我们需要初始化 OpenWebRTC:

@implementation SimpleDemoAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    [OpenWebRTCViewController initOpenWebRTC];
    return YES;


@end

在视图控制器中初始化 OpenWebRTC WebView

   self.browserView = [[OpenWebRTCWebView alloc] initWithFrame:self.view.frame];
[self.view addSubview:self.browserView];

加载页面就这么简单

    - (void)viewDidLoad

    [super viewDidLoad];
    [self loadRequestWithURL:@"http://demo.openwebrtc.io"];

他们原生支持所有不受支持的 WebRTC API。

这里是link,它解释了如何在 iOS 项目中逐步实现 OpenWebRTC。

有一个名为Bowser 的网络浏览器已构建在 OpenWebRTC 框架之上。因此,您可以在 Bowser 中打开任何支持 webrtc 的 Web 应用程序,因为不受支持的 API 使用 OpenWebRTC 框架本机支持。

它不仅是免费的应用程序,而且是OpenSource Project,它已经托管在 Github 上。您可以查看源代码以了解它们是如何实现的。

您可以将其用作开发项目的参考应用

【讨论】:

还有其他选项可以执行此操作,例如...您可以使用 apprtc 示例项目并根据您的需要更改项目,或者如果您对 cordova 你可以使用cordova-plugin-iosrtc 来实现这一点。 确保 ... url 有 https 而不是 http,因为 chrome 仅在主机受到保护的情况下才支持,否则您可以在 firefox 中尝试它同时支持 http 和 https 好的..你能用apprtc.appspot.com试试吗...请确保它的https不是http 我猜Bowser可能不支持网页中使用的一种javascript方法。 我刚刚也尝试了最新的应用程序。我在项目存储库中提出了一个issue 【参考方案2】:
    目前没有插件或任何方式扩展 iOS webview 以支持 webRTC。您必须等待苹果提供。 在 iOS 上支持 webRTC 的一种方法是在本机应用程序中使用本机堆栈(如另一个答案中引用的 openWebrtc 或 webrtc.org)。 在你的情况下,因为你想重用你的网络应用程序,你可以使用一个混合应用程序的框架,比如科尔多瓦,在这种情况下,你有一个科尔多瓦插件,开源和免费的,它为你实现了 webrtc:https://github.com/eface2face/cordova-plugin-iosrtc

【讨论】:

非常欢迎使用带有 Web 视图的本机框架为 webrtc 提供即时帮助!

以上是关于如何在 Hybrid iOS 应用程序中实现 WebRTC?的主要内容,如果未能解决你的问题,请参考以下文章

即时通讯开发如何在WebSocket基础上实现Hybrid移动应用的消息推送

如何在 ios 中实现条码扫描器功能?

如何在IOS应用中实现google图片搜索? [关闭]

如何在 iOS 中实现这种风格?

如何通过 XCode 在 iOS 应用中实现相机功能

如何在 iOS 中实现用户挂起功能