如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章