権限付与のメソッド
メソッド | 利用可能範囲 | 説明 |
wv.authorize | グローバルにサポート |
|
wv.getAuthCode | グローバルにサポート |
|
wv.authorize:ユーザーデバイス情報
前提条件
SDK を初期化する際、アプリ開発者は EMASMiniAppInitConfig または MiniAppInitConfig クラスで、needAuthFromApp を true に設定する必要があります。
事前準備
ミニアプリが `WVLocation.getLocation` や `WVVideo.chooseVideo` など、デバイス情報を必要とする API を呼び出すと、ホストアプリはユーザーに権限付与を求めるプロンプトを表示する必要があります。ミニアプリ開発者は wv.getSetting を呼び出して、ミニアプリの現在の権限付与ステータスを確認できます。
権限付与が必要な API を使用するには、ユーザーはホストアプリ内のミニアプリと、オペレーティングシステムレベルのホストアプリという 2 つのレベルで権限を付与する必要があります。
これら 2 つの権限付与レベルは独立しています。ユーザーがミニアプリに権限を付与していても、ホストアプリが対応するシステム権限を取得していない場合、API が呼び出されるとコンテナは自動的にシステムプロンプトをトリガーします。ミニアプリは WVUIDialog.showAuthGuide API を呼び出して、ユーザーをシステム設定ページに誘導し、ホストアプリに権限を付与させることもできます。
ミニアプリの権限付与ロジック
ユーザーがまだミニアプリに権限を付与していない場合、権限が必要な API を呼び出す前に、まず wv.authorize を呼び出す必要があります。すると、ホストアプリはユーザーに権限付与プロンプトを表示します。
ユーザーが同意した場合、ミニアプリはデバイス情報 API を呼び出すことができます。その後の呼び出しでは、権限付与プロンプトは再度トリガーされません。
ユーザーが拒否した場合、`fail` コールバックがすぐにトリガーされ、権限付与が拒否されたことを示します。その後に API を呼び出すと、権限付与プロンプトが再度表示されます。
ミニアプリ開発者は、権限が必要な API を呼び出す前に、まず wv.getSetting を呼び出してユーザーの権限付与ステータスを確認する必要があります。権限が付与されていない場合は、wv.authorize を呼び出してリクエストし、その後で対象の API を呼び出します。
システムレベルの権限ロジック
必要な権限がオペレーティングシステムで無効になっているか、ホストアプリに付与されていない場合、ユーザーがミニアプリに権限を付与していても API 呼び出しは失敗します。通常、ミニアプリが初めて API を呼び出すと、ホストアプリもシステムに権限を要求し、プロンプトを表示します。ユーザーがリクエストを拒否し、「今後表示しない」を選択した場合、その後の呼び出しで `fail` コールバックが直接トリガーされることがあります。この場合、ミニアプリ開発者は WVUIDialog.showAuthGuide を呼び出して、システムの権限設定ページを開き、ユーザーに手動で権限を有効にするよう案内できます。
wv.getAuthCode:ユーザー個人情報
wv.getAuthCode API は、フローティング形式の権限付与プロンプトを表示することで、現在のミニアプリに氏名や連絡先情報などの個人情報へのアクセス権を付与するようユーザーに促します。ユーザーがご利用のミニアプリのサービスを十分に理解した後にのみ wv.getAuthCode を呼び出すことを推奨します。ユーザーエクスペリエンスを低下させる可能性があるため、ミニアプリのホーム画面で wv.getAuthCode を呼び出すことは避けてください。
ミニアプリのバックエンドサーバーは、wv.getAuthCode によって返された認証コード (`authCode`) を使用する必要があります。その後、サーバーはこのコードをプラットフォームと交換して、ユーザー ID、アバター、ニックネーム、電話番号、リージョン、性別、生年月日などのユーザー個人情報を取得できます。
Alibaba Cloud スーパーアプリアプリケーションオープンプラットフォームは wv.getAuthCode の標準 API 定義を提供します。ただし、プラットフォームはクライアントのスーパーアプリのユーザー情報にアクセスできないため、この API の実装はスーパーアプリ開発者の責任となります。実装のリファレンスについては、「スーパーアプリ技術標準の実装に関するベストプラクティス」をご参照ください。
スコープコントロール
スコープは、開発者がユーザーにリクエストする権限の範囲を定義します。
権限コントロールのために必要なスコープを宣言します。
機密情報に関連するスコープの場合、ユーザー操作によって権限付与リクエストを開始する必要があり、バックグラウンドで自動的にトリガーすることはできません。
スコープ | 対応 API | 説明 | 権限付与 API |
USER_ID | - | ユーザーの一意の識別子 (user_id) を取得する権限を付与します。これはサイレント権限付与であり、ダイアログは表示されません。 | 権限付与 API:wv.getAuthCode |
USER_NICKNAME | - | アプリユーザーのニックネームを取得する権限を付与します。 | |
USER_NAME | - | アプリユーザーの名前を取得する権限を付与します。 | |
USER_LOGIN_ID | - | アプリユーザーのログイン ID を取得する権限を付与します。 | |
HASH_LOGIN_ID | - | アプリユーザーのログイン ID のハッシュを取得する権限を付与します。 | |
USER_AVATAR | - | アプリユーザーのアバターを取得する権限を付与します。 | |
USER_GENDER | - | アプリユーザーの性別を取得する権限を付与します。 | |
USER_BIRTHDAY | - | アプリユーザーの生年月日を取得する権限を付与します。 | |
USER_NATIONALITY | - | アプリユーザーの国籍を取得する権限を付与します。 | |
USER_CONTACTINFO | - | アプリユーザーの連絡先情報を取得する権限を付与します。 | |
auth_base | - | ユーザーの一意の識別子 (user_id) を取得する権限を付与します。これはサイレント権限付与であり、ダイアログは表示されません。 | |
auth_user | - | アプリアカウント情報を取得する権限を付与します。 | |
location | 位置情報の権限付与 | 権限付与 API:wv.authorize | |
camera | カメラの権限付与 | ||
Bluetooth | すべての WVBluetooth メソッド | Bluetooth の権限付与 | |
album | アルバムの権限付与 | ||
contacts | すべての WVContacts メソッド | 連絡先の権限付与 | |
microphone | マイクの権限付与 | ||
file | ファイルの権限付与 | ||
call | 通話の権限付与 | ||
vibration | バイブレーションの権限付与 | ||
screen capture | スクリーンキャプチャの権限付与 |