ID Verification H5 モバイル SDK をモバイル アプリケーション(アプリ)に統合する場合、埋め込みブラウザ(WebView)のバージョン、組み込み権限、その他の要因により、互換性の問題が発生する可能性があります。 このトピックでは、H5 モバイル SDK との互換性の問題を軽減するために、アプリで WebView を構成してカメラ デバイスを使用し、Web ビデオ再生を有効にし、その他の権限を管理する方法について説明します。
Android の構成
Android エコシステムの深刻な断片化のため、アプリで Android ネイティブの [Webview] を使用してシステム カメラにアクセスすると、カメラ アクセスが拒否されたり、再認証後に顔認証ページが起動に失敗したりするなど、互換性の問題が発生する可能性があります。
互換性の問題を解決するには、次の手順に従います。
AndroidManifest.xmlファイルで次の権限を宣言します。<!--アプリケーションのカメラアクセス許可--> <uses-permission android:name="android.permission.CAMERA" /> <!--アプリケーションのネットワークアクセス許可--> <uses-permission android:name="android.permission.INTERNET" />WebView を構成します。
onPermissionRequest()メソッドをオーバーライドして、Web ページの権限リクエスト コールバックを許可します。WebView ベースの Web アプリケーションの場合、ブラウザが権限管理を担当するため、ユーザーがカメラを呼び出す H5 Web ページにアクセスすると、ユーザーが権限リクエストを拒否した場合、Web ページを開いてカメラを再度呼び出すと、アクセス拒否メッセージが表示されます。
したがって、
onPermissionRequest()メソッドをオーバーライドして、Web ページの権限リクエストの処理をカスタマイズできます。 次の例を参照してください。webView.setWebChromeClient(new WebChromeClient(){ @Override public void onPermissionRequest(PremissionRequest request) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 現在のデバイスのシステムバージョンが Android 5.0 以降であるかどうかを確認します // その場合は、Web ページによって要求されたすべての権限を直接付与します。 この例は参照用です。 実際の状況に合わせて書き直してください。 request.grant(request.getResources()); } } });Web ページでビデオの自動再生を許可するように WebView を構成します。
// 自動再生を許可する webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
iOS の構成
Info.plistファイルで、NSCameraUsageDescriptionキーを宣言し、アプリケーションがカメラの権限にアクセスする必要がある理由をユーザーに明確に説明します。 例:<key>NSCameraUsageDescription</key> <string>写真を撮ったり QR コードをスキャンしたりするには、カメラにアクセスする必要があります。</string>WebView の WKWebViewConfiguration を設定して、ビデオの自動再生とページ内再生を許可します:
Swift
// WKWebViewConfiguration クラスを使用してカメラの使用を構成する let config = WKWebViewConfiguration() config.allowsPictureInPictureMediaPlayback = true // ビデオの自動再生を許可する let myAudiovisualMediaType: WKAudiovisualMediaTypes = [] config.mediaTypesRequiringUserActionForPlayback = myAudiovisualMediaType // Web ページ内でのビデオ再生を許可する(全画面再生ではない) config.allowsInlineMediaPlayback = trueObjective-C
// WKWebViewConfiguration クラスを使用してカメラの使用を構成する WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; config.allowsInlineMediaPlayback = YES; // ビデオの自動再生を許可する config.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; // Web ページ内でのビデオ再生を許可する(全画面再生ではない) config.allowsInlineMediaPlayback = YES;
WebRTC 互換性サポート リスト
[iOS 14.3] 以降のバージョンでは、[WKWebView] で [WebRTC] のサポートが追加されました。
したがって、WeChat、サードパーティ ブラウザ、およびアプリは、WebRTC 機能をサポートするために [iOS 14.3] 以降のバージョンで実行する必要があります。
[WKWebView] を使用していないサードパーティの iOS アプリの場合は、使用されている [WebView] が [WebRTC] 機能をサポートしているかどうかを確認して、[WebRTC] をサポートしているかどうかを判断する必要があります。
[クライアント] | [Android バージョン] | [iOS バージョン] |
Edge | Android 4.0 以降 | iOS 14.3 以降 |
FireFox | ||
Chrome | ||
Opera | ||
Baidu | ||
Android Browser 5.0+ | ||
Safari | サポートされていません | iOS 11 以降 |
UC | Android 4.0 以降 | サポートされていません |
UC Browser Turbo | ||
メーカー組み込みブラウザ | Xiaomi や Samsung などの一部のモデルでサポートされています | |
WeChat (アプリ) | Android 4.0 以降 | iOS 14.3 以降 |
アプリ | WebRTC をサポートする WebView を搭載した Android 4.0 以降 | iOS 組み込みの WKWebView を使用する iOS 14.3 以降 |