iOS 11 and WebRTC Support

by Santiago Troncoso

Finally it’s out. Apple joins the WebRTC train and announces the support of the Javascript API into Safari v11. This will come with with next release of the iOS and macOS systems, so it seems that the support is near.

“Safari 11.0 ships with iOS 11.0 and macOS 10.13. It is also available on macOS 10.12.6 and 10.11.6.”

Expected release dates of iOS 11 are the following ones:

  • iOS 11 developer beta release date: Available now
  • iOS 11 public beta release date: End of June
  • Final iOS 11 release date: Autumn

We have the following conclusions after checking the release notes[1] and inspecting the current status of WebKit[2]:

  • Support will be limited to audio and video, so no native screen sharing will be available (as you can find on Mozilla Firefox).
  • FaceTime will include screen sharing, so native plugins could eventually reach this feature.
  • WebKit still marks this feature as “In Development”, so we must wait to check the WebRTC API on the openSource browser engine

Following these details, the Quobis team is working actively right now on this new release and implications for the SippoSDK applications. Meanwhile the current implementation of our Sippo family products will keep the current support, on next releases we will remove extra layers and reach the native solution.

Current support of iOS and macOS with Sippo applications:

  • macOS + Chrome / Firefox:
    Native WebRTC API + 3rd party plugins (integrated into SippoSDK, no extra code lines required)
  • macOS + Safari:
    required 3rd party plugins (integrated into SippoSDK, no extra code lines required)
  • iOS + Safari / Chrome / Firefox browsers:
    not supported yet until Safari 11 will be available
  • iOS + dedicated app:
    Full RTC support (with SippoSDK)

Here are some screenshots for the WebRTC API using the iOS11 development preview and Safari Technology Preview (Release 32)[3] On well know gUM testers[4][5]:

As expected, full support and zero-problems with the desktop version, but important detail:

 

  • Permission is always request even when you accept the usage
  • You must change it manually on the settings screen

On the iOS implementation we find several differences:

  • The permissions prompt is as usual: first time only, but same accept/deny popup that the rest of the system, ¿different from the Desktop version? really strange.
  • By default seems that iOS start the video on fullscreen (¿?) no reason at all, but true.
  • Seems that some debug is still required since you need to actively press play (user action that derives on play() method) in order to activate the video. NOTE: capture is working, the problem is reproducing the local video…
  • Access of the camera could be removed on the settings section.

If you have any question, do not hesitate to contact Quobis team for any related question, we will be happy to help you with your questions and concerns.

 

[1] Safari Release notes:
https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html
[2] WebKit feature status:
https://webkit.org/status/#?search=webrtc
[3] Safari Technology preview release notes:
https://developer.apple.com/safari/technology-preview/release-notes/
[4] Github WebRTC tester:
https://webrtc.github.io/samples/src/content/getusermedia/gum/
[5] Mozzilla WebRTC tester:
https://mozilla.github.io/webrtc-landing/gum_test.html