全部產品
Search
文件中心

SuperApp:授權說明

更新時間:Jul 08, 2025

授權喚起方式

喚起方式

組合授權

備忘

wv.authorize

全域支援

  • 擷取使用者裝置資訊。

  • 提前向使用者發起授權請求。調用後會立刻彈窗詢問使用者是否同意授權小程式使用某項功能,或擷取使用者的某些資料,但不會實際調用對應介面。如:相機、擷取地理位置等功能。

  • 如果使用者之前已經同意授權,則不會出現彈窗,直接返回成功。

wv.getAuthCode

全域支援

  • 擷取使用者個人資訊。

  • scope可自訂。

wv.authorize 使用者裝置資訊授權流程

前提條件

接入準備

  • 小程式調用裝置資訊相關的 API(如WVLocation.getLocation、WVVideo.chooseVideo)時,APP需要彈出授權提示框,由使用者決定是否授權給當前小程式。小程式開發人員可通過 wv.getSetting 擷取當前小程式的授權狀況。

  • 使用需要授權的 API 時,需要使用者在兩個層次上完成授權:1,在APP內授權給小程式;2,在系統層級開啟對應功能並授權給APP。

  • 兩層授權狀態相互獨立。如果小程式已經獲得了使用某項裝置資訊的使用者授權,但App還沒有獲得對應的系統許可權,小程式調用 API 時,容器會自動觸發系統彈窗與使用者確認是否授權給App,小程式也可以通過 WVUIDialog.showAuthGuide API 來引導使用者去系統設定頁面給 App 開啟系統許可權。

小程式授權相關的邏輯

在使用者未對小程式授權的情況下,小程式調用需要許可權的 API,需要先調用wv.authorize, App會向使用者彈出授權提示框:

  • 如果使用者同意,小程式便可以繼續調用裝置資訊擷取的 API 執行,且後續該 API 呼叫時不會再彈出授權提示框;

  • 如果使用者拒絕,將直接觸發 fail 回調,提示使用者取消授權;後續再調用 API 時,還會向使用者彈出授權提示框;

建議小程式開發人員在調用需要使用者授權的 API 前,先調用 wv.getSetting 方法查詢小程式的使用者授權狀態,如果未獲得使用者授權則調用 wv.authorize方法,最後再調用需要授權的API。

系統級許可權相關的邏輯

如果某個 API 所需的特定許可權,使用者並未在系統中開啟或者未授權給App,那麼即使使用者同意將該許可權授權給當前小程式,API 的調用仍會失敗。一般來說,小程式對該 API 的首次調用也會觸發APP向系統申請許可權,使用者會看到相應的授權提示或者引導介面;使用者拒絕並勾選'不再詢問',則可能直接觸發 fail 回調, 小程式開發人員可以通過調用 WVUIDialog.showAuthGuide拉起系統使用權限設定頁面,引導使用者手動開啟許可權。

wv.getAuthCode 使用者個人資訊授權流程

wv.getAuthCode 引導使用者授權其個人資訊給當前小程式(如使用者姓名、連絡方式),會彈出授權引導浮窗。建議在使用者充分瞭解小程式的業務內容後,小程式再調用wv.getAuthCode,避免在小程式首屏調用 wv.getAuthCode,損害使用者體驗。

通過 wv.getAuthCode 所取得的代表使用者授權的授權碼(authCode),後續需由小程式服務端使用,向平台換取實際使用者個人資訊(如user_id、頭像、暱稱、手機號、地區、性別、出生日期等)。

阿里雲 SuperApp 應用開放平台提供了 wv.getAuthCode 的 API 標準定義,但由於平台自身不掌握客戶 SuperApp 的使用者資訊,所以該 API 的實現需要由 SuperApp 的開發人員完成,實現方案可以參考:SuperApp技術標準實現最佳實務

scope管控

一個scope表示開發人員需要請求使用者授權的許可權範圍。

  • 許可權管控scope錄入。

  • 敏感資訊相關的scope需要使用者主動發起授權,而非後台觸發授權彈窗。

scopes

對應介面

含義

喚起方式

USER_ID

-

授權擷取App使用者的唯一標識(user_id)。此方式為靜默授權,不會彈出授權浮窗。

授權API:wv.getAuthCode

USER_NICKNAME

-

授權擷取App使用者的暱稱。

USER_NAME

-

授權擷取App使用者的名稱。

USER_LOGIN_ID

-

授權擷取App使用者的登入ID。

HASH_LOGIN_ID

-

授權擷取App使用者登入ID的hash值。

USER_AVATAR

-

授權擷取App使用者的頭像。

USER_GENDER

-

授權擷取App使用者的性別。

USER_BIRTHDAY

-

授權擷取App使用者的生日。

USER_NATIONALITY

-

授權擷取App使用者的國籍。

USER_CONTACTINFO

-

授權擷取App使用者的連絡方式。

auth_base

-

授權擷取App使用者的唯一標識(user_id)。此方式為靜默授權,不會彈出授權浮窗。

auth_user

-

授權擷取App賬戶資訊。

location

WVLocation.getLocation;WVLocation.searchLocation

地理位置授權

授權API:wv.authorize

camera

WVScan.scan

相機授權

bluetooth

WVBluetooth涉及所有方法

藍芽授權

album

WVVideo.chooseVideo;WVCamera.takePhoto

相簿授權

contacts

WVContacts涉及所有方法

通訊錄授權

microphone

WVMotion.listenBlow ;WVMotion.stopListenBlow

麥克風授權

file

WVVideo.saveVideoToPhotosAlbum ;WVImage.saveImage

檔案授權

call

WVCall.dial ;WVCall.call

電話授權

vibrate

WVMotion.vibrate

震動授權

screen

WVMotion.vibrate

截屏授權