I'm running the OpenTok demo WebRTC app on Chrome - and it works great. But if I load the page in IE, it gives me an error message (about page compatibility).
Pretty obvious solution is to use the old (Flash-based) OpenTok library on IE - but do I have to do it "manually"? Is there some sort of an "automatic switching" library that would try to load WebRTC (2.0) TB.min.js, and if it fails fall back to Flash (0.9) version?
Also a related question - will all these versions interoperate? I.e. can Chromes (running 2.0/WebRTC) talk to IE (running 0.9/Flash) and talk to iOS (running native)?
To have WebRTC capabilities on IE, users could install Chrome Frame (for IE6+). It is a valid option, but you should know that it is no longer being actively supported by Google.
As far as I know, there is no automatic switching library. However, on your server, you could look at the HTTP requests and find out the client's browser. From there, you could dynamically load either the WebRTC or Flash library depending on the browser's support for WebRTC. Currently, the OpenTok WebRTC library supports:
Chrome 23+
Firefox 22+
Unfortunately, OpenTok does not interoperate between Flash and WebRTC clients. WebRTC clients can operate with other WebRTC clients (mobile, web, etc.), just like Flash can only operate with other Flash clients. For example, an iOS client would have to use the WebRTC SDK and the Chrome/Firefox web app would have to include the WebRTC Javascript library.
Related
Im working with integrating my iOS app with ladesk Live agent, they don't have an SDK for iOS neither android, you have to embed a unique URL in a UIWebView as per the integration instructions
but it is faced a fact that the video / call button needs to work with webRTC. The WebRTC framework that is responsible for voice functionality in the browser, however webRTC is not available in the mobile versions of web browsers.
The best thing I found is A WebRTC browser for iOS developed in the open. Bowser is built on top of OpenWebRTC. but it didn't work, and had same results as doing the same with UIWebView
Any ideas in Objective c or swift?
You won't be able to use WebRTC in a UIWebView (or its successor WKWebView) since WebRTC is only available in the Safari app on iOS.
The only way forward is to use a WebRTC stack (like Apprtc) and implement your own solution based on that.
My apps will use some widgets to show web pages. But QTextBrowser just support HTML 4.1, and QtWebView just support QML, and QWebEngineView just spoport Linux/Unix/MacOSX/Windows. Why does QWebEngineView not support Android and IOS? It is the reason of Chromium donot support Android and IOS ?
Current mobie apps often use WebView to show web pages, so we can't wait for QWebEngineView. What is the official idea and plan?
It is the reason of Chromium donot support Android and IOS ?
iOS
Apple does not allow Chromium on iOS.
See rule #2.5.6 at https://developer.apple.com/app-store/review/guidelines/#software-requirements -- Apps that browse the web must use the appropriate WebKit framework and WebKit Javascript.
Android
It is technically possible to add support for Qt WebEngine on Android, but this support does not exist at the moment.
See http://lists.qt-project.org/pipermail/development/2013-September/013169.html for the reasons.
This is my interpretation:
It requires a lot of work. The Qt Company's resources are being spent in other areas.
An Android app that uses QWebEngineView will need to include the Qt WebEngine library, which is very large (~30 MB?). This is not desirable.
I need to build video chat application with the option to record the video call. I think that most appropriate would be to use WebRTC, specifically Kurento. However, Safari does not support WebRTC at this moment, and the iOS client SDK's don't offer the ability to record the video. This is supported for a javascript client:
http://doc-kurento.readthedocs.io/en/stable/tutorials/java/tutorial-one2one-adv.html
So I was thinking to open a chrome browser inside my app just for the webRTC functionality. I read about Blink WebKit but I'm not sure if this is what I need.
P.S. Any other proposed solutions for the video call + recording features on an iOS app are welcome.
The simple answer is no, you can't use Chrome on IOS for webRTC. Apple for some reason don't like peer to peer technologies, and while they are rumoured to be working on it, there is no announcement yet.
There is this...
cordova-plugin-iosrtc
Cordova iOS plugin exposing the full WebRTC W3C JavaScript APIs.
Public Google Group (mailing list) for questions and discussions about
cordova-plugin-iosrtc. Bug Tracker for reporting issues and requesting
new features (please don't use the bug tracker for questions or
problems, use the mailing list instead). NPM package. Yet another
WebRTC SDK for iOS?
Absolutely not. This plugin exposes the WebRTC W3C API for Cordova iOS
apps (you know there is no WebRTC in iOS, right?), which means no need
to learn "yet another WebRTC API" and no need to use a specific
service/product/provider.
https://github.com/eface2face/cordova-plugin-iosrtc
Warning: Some assembly required
See this article for more details on the pitfalls:
http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/
Preface: there are questions (some good, some bad) already in existance on StackOverflow about webRTC support on various browsers and platforms, including iOS. However I couldn't find anything definitive that was more recent than ~2012, and this is a rapidly-changing field.
I'm working on a browser-based webapp that uses webRTC for minimal-latency peer-to-peer data transfer (not for audio/video, unlike most applications it would seem - all I need is DataChannel).
I hit a snag when I started testing the data-transfer part of the project and discovered that iOS devices still don't natively support this in their built-in browsers (despite some recent rumors).
Bowser is a free open-source browser App for iOS that purports to support webRTC on iOS. The problem is that when I try to open the app, it simply crashes and closes. I've tested this on an iPhone 5 and 5s. Googling has failed to turn up alternatives - even Chrome for iOS doesn't currently support webRTC it seems.
My questions:
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
3) What strategies have other people used to work around this limitation?
As of iOS 11, WebRTC is now supported in Safari: https://developer.apple.com/library/archive/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_0.html#//apple_ref/doc/uid/TP40014305-CH13-SW1
Check out crosswalk project ( https://crosswalk-project.org )
This Provides runtime of Chromium engine for native support in older devices.
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
Answer:
There is a Browser called Bowser that supports webRTC.
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
Answer:
It's not crashing as of now.But I couldn't successfully test with anything so far.I have raised an issue about it
3) What strategies have other people used to work around this limitation?
Answer:
Apple is yet to support WebRTC in Webkit so as of now the only way would be develop a native or Hybrid app that would support the unsupported WebRTC APIs.
You can develop a hybrid app powered by OpenWebRTC or cordova-plugin-iosrtc
I am trying to build a audio/video streaming app that works cross platform on iOS and Android mobile devices.
No matter how deep I Google, I'm ending up with suggestions that point me towards OpenTok/TokBox API. But this is what I wish to avoid.
I've checked a few demo, but WebRTC/HTML5 do not seem to work with streaming video/audio in iOS browser. For example, the https://apprtc.appspot.com demo does not work in Safari or Opera Mini in iOS.
When I try http://dev.opera.com/articles/media-capture-in-mobile-browsers/demo/ ... I can capture image using the default iOS camera picker from my browser but streaming video fails.
It seems like the getUserMedia() stuff is not supported by any browser in iOS.
Moreover, I am planning to put this on a WebView in a native iOS app. This sounds like a really far cry.
I wish someone could point me towards something that helps me build a video streaming app (hopefully using HTML5), that works uniformly for iOS and android (without TokBox).
You might want to look into Ericsson's Bowser App http://www.ericsson.com/research-blog/context-aware-communication/bowser-openwebrtc-released-open-source. It claims to provide WebRTC on Android and IOS. Apparently the App is currently under review in the App Store so if you wait it may just be a case of downloading the App. However it's also open source so if you can't wait then you can build it yourself https://github.com/ericssonresearch/bowser.
getUserMedia and WebRTC Peer-to-peer connections APIs are not supported in iOS.
One of the reason is that at the moment efforts around WebRTC focus on VP8 video codec which Apple and Microsoft do not support natively. Support in the near future is unlikely with Microsoft pushing for its own standard.
Doing what you want on iOS requires you use a native iOS compatible solution like OpenCV which supports video capture. You can find on Google tutorials on how to implement a solution based on OpenCV.
good news, will be supported at Safari 11.0
https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html