TAMINIF’s blog

京都在住のWebエンジニア。iOSアプリもやってます。勉強会にも参加してます。最近はマネージャー色強め

iOS11でWebRTCに対応されたので詳細な調査を行った。

概要

iOS11でSafariがWebRTCに対応し、iOSでもP2P通信ができるようになりました。ところで、iOSにはSafari以外にもアプリ内で実装できるブラウザが存在します。
そのブラウザではどうなのか、調査しました。

TL;DR

Safari以外のブラウザでは対応していませんでした。

WebRTCに必要なもの

WebRTCを行うためには、最低でも以下二つのAPIが必要です。

  • RTCPeerConnection
    • P2P通信を行うためのAPIです。
  • getUserMedia
    • ブラウザが映像や音声を取得するためのAPIです。

そもそもWebRTCとは、これらを含むAPI(やプロトコル)の総称です。

iOS11のブラウザ

iOSには、Safari以外に三つのアプリ内実装用ブラウザが存在します。

  • WKWebView
  • SafariViewController
  • UIWebView
    • iOS11ではdeprecated

調査結果

全てのアプリ内実装用ブラウザで、RTCPeerConnectionは存在しましたがgetUserMediaは存在しませんでした。 よって、iOS11ではSafari以外ではWebRTCを使用することはできません。 アプリ内で実装する場合は、今まで通りネイティブで実装する必要があります。 時間があれば、DataChannelによる通信はできるのか調査してみたいと思います。