WebViewを使用するケース
WebView連携は、次の場合にのみ使用してください。- ネイティブSDKのないプラットフォーム(Xamarin、Cordova、その他のニッチなフレームワークなど)で開発している場合
- ネイティブSDKを連携する前に、簡易的なプロトタイプや概念実証が必要な場合
- Webから移行中で、ネイティブ連携までの一時的なつなぎとして使いたい場合
仕組み
1
セッションを作成する
バックエンドがセッション作成APIを呼び出し、ホスト型の
urlを受け取ります。2
WebViewで開く
アプリがWebViewコンポーネントで
urlを読み込みます。3
ユーザーが認証を完了する
ユーザーはWebView内で認証フローを進めます。
4
コールバックをインターセプトする
完了すると、WebViewはコールバックURLに遷移します。アプリはこの遷移をインターセプトし、結果を取得します。
5
Webhookで完全な結果を取得する
バックエンドはWebhook経由で完全な判定データを受け取ります。
セッションの作成
認証フローを開く前に、バックエンドからセッションを作成します。201。urlにはsession_idではなく、12文字のsession_tokenが埋め込まれています):
urlフィールドを読み込んでください。session_tokenから手動でURLを組み立てることは絶対にしないでください。
React Native
WebViewパッケージをインストールします。実装
React Nativeデモ
Expo + WebViewによる認証のサンプル
Flutter
必要なパッケージをpubspec.yamlに追加します。
実装
Flutterデモ
Flutter WebViewによる認証のサンプル
重要な設定
ユーザーエージェント(必須)
WebViewを正しく動作させるには、汎用的なモバイル向けユーザーエージェントを設定する必要があります。メディア設定(必須)
コールバックの処理
認証後、WebViewはクエリパラメーター付きでコールバックURLにリダイレクトします。トラブルシューティング
カメラが動作しない
カメラが動作しない
mediaPlaybackRequiresUserGestureがfalseになっていることを確認します- OSレベルでカメラの権限が許可されていることを確認します
- ユーザーエージェント文字列が正しく設定されていることを確認します
白い画面が表示される、または読み込みに問題がある
白い画面が表示される、または読み込みに問題がある
- セッションURLが有効で、期限切れでないことを確認します
- インターネット接続を確認します
- WebViewの設定でJavaScriptが有効になっていることを確認します
コールバックがトリガーされない
コールバックがトリガーされない
- コールバックURLが、セッション作成時に設定したものと一致していることを確認します
- ナビゲーションデリゲートまたはリスナーが正しく設定されていることを確認します
- セッション作成時に
callback_methodを"both"に設定してみてください