A WebRTC browser for iOS developed in the open. Bowser is built on top of OpenWebRTC.
Bowser is not only Open Source, it is also available as a free download on the Apple App Store. When improvements have been made to Bowser or OpenWebRTC new versions for the App Store are published by Ericsson Research.
Tips and other resources can be found on the wiki page Developing for Bowser.
Bowser is based on the official UIWebView
provided by the platform and the WebRTC API's are implemented with JavaScript that is injected into web pages as they load, the injected JavaScript code is using remote procedure calls to control the OpenWebRTC backend.
The plan is to move to the WKWebView
, introduced in iOS 8, as soon as possible.
Mobile Safari on iPhone displays <video>
elements only in fullscreen. This severely limits the UI of your apps, especially when designing video communication apps using WebRTC. Bowser goes beyond that and allows you to fully customise and manipulate <video>
elements using CSS and JavaScript.
To build Bowser you need a completed build of OpenWebRTC, Xcode and the iOS SDK. The build itself is pretty simple as we have set up the header/library search paths to expect that you cloned Bowser alongside OpenWebRTC. As long as you have:
/path/to/bowser
/path/to/openwebrtc
...then you shouldn't have any problems with just opening the Xcode project and building.
As Bowser is using the official UIWebView
that is provided by the iOS platform you can use Apple's Web Developer Tools to debug your WebRTC scripts. It is also possible to use Safari on OS X to debug Bowser. The details are described in this blog post.
Bowser was originally developed by Ericsson Research and released in October of 2012, for both iOS and Android devices. Back then Bowser was the world's first WebRTC-enabled browser for mobile devices. Bowser was later removed from the Apple App Store and Google Play but was resurrected and released as Open Source together with OpenWebRTC.
Bowser is released under BSD-2 clause. See LICENSE for details.