Open4

ネイティブアプリでWebコンテンツ

ずっと駆け出しエンジニアずっと駆け出しエンジニア

ネイティブアプリでHTML、CSS、JavaScriptを含むWebコンテンツを表示させる時の選択肢は複数ある。
どういう時に何を選択したら良いか、Cookie連携は可能なのか、起動時のプロトコルに制限はあるのかなど、気になったのでマイペースにまとめていこうと思います。

ずっと駆け出しエンジニアずっと駆け出しエンジニア

iOS

[1] WKWebView
[2] 別アプリとしての起動
[2-1] Safari起動
[2-2] MicrosoftEdge起動
※ UIWebViewは非推奨になって長く経つので、スコープ外とする。

クロスプラットフォーム

[1] React Native
[2] Flutter
[3] Cordova / PhoneGap:
[4] Ionic Framework:

当方、ネイティブの開発経験はiOSのみなので、まずは前者についてまとめていけてらいいかな

ずっと駆け出しエンジニアずっと駆け出しエンジニア

調査前のブレスト

WKWebView

webkitをimportしてパパッと使える
Delegate使える
Delegate使えるけど、SPAとかだとR/Rを検知できなかったりする
Cookieを設定したり、Cookieを取り出したりできる

Safari

iOSには基本的には入ってるブラウザ
Cookieを設定は可能だが、Cookieを取り出すことはできない(?)
GETもPOSTも可能

Microsoft Edge

edgeのインストールが必要
URLスキーム(カスタムプロトコルとも言ったりする)の設定が必要
httpsでedge起動させるのに手間取った

ずっと駆け出しエンジニアずっと駆け出しエンジニア

Microsoft Edgeの起動について

  1. Info.plistのQueried URL Schemesに対して、URLスキームを設定してあげる必要がある

  2. 色々調べ物してるとmicrosoft-edge:で定義するというのも多かったが、これだとedgeは起動するが、http:http:~~~のように重複したリンクとなってしまい正しく起動しなかった。https、httpでリンクを開くときは上記のような設定をすることで正しくリンクがひらけた。

参考になったらいいねください。