Métodos de autorização
Método | Disponibilidade | Descrição |
wv.authorize | Suporte global |
|
wv.getAuthCode | Suporte global |
|
wv.authorize: Informações do dispositivo do usuário
Pré-requisitos
Ao inicializar o SDK, defina needAuthFromApp como true na classe EMASMiniAppInitConfig ou MiniAppInitConfig.
Antes de começar
Quando um miniapp chama uma API que requer informações do dispositivo, como
WVLocation.getLocationouWVVideo.chooseVideo, o aplicativo host deve exibir um prompt de autorização para o usuário conceder a permissão. Desenvolvedores podem chamar wv.getSetting para verificar o status atual de autorização do miniapp.Para usar APIs que exigem autorização, o usuário deve conceder permissão em dois níveis: ao miniapp dentro do aplicativo host e ao aplicativo host no nível do sistema operacional.
Esses dois níveis de autorização são independentes. Se o usuário tiver concedido permissão ao miniapp, mas o aplicativo host não tiver obtido a permissão de sistema correspondente, o container acionará automaticamente um prompt do sistema ao chamar a API. O miniapp também pode chamar a API WVUIDialog.showAuthGuide para orientar o usuário até a página de configurações do sistema e conceder a permissão ao aplicativo host.
Lógica de autorização do miniapp
Se o usuário ainda não tiver autorizado o miniapp, chame wv.authorize antes de invocar uma API que exija permissão. O aplicativo host exibirá então um prompt de autorização ao usuário:
Se o usuário concordar, o miniapp poderá chamar a API de informações do dispositivo. Chamadas subsequentes não acionarão outro prompt de autorização.
Se o usuário recusar, o callback
failserá acionado imediatamente, indicando negação da autorização. Chamadas subsequentes à API exibirão o prompt de autorização novamente.
Chame primeiro wv.getSetting para verificar o status de autorização do usuário antes de chamar uma API que a exija. Caso a permissão não tenha sido concedida, chame wv.authorize para solicitá-la e, em seguida, invoque a API desejada.
Lógica de permissão no nível do sistema
Se uma permissão necessária estiver desativada no sistema operacional ou não tiver sido concedida ao aplicativo host, a chamada da API falhará, mesmo que o usuário tenha concedido permissão ao miniapp. Normalmente, na primeira vez que o miniapp chama a API, o aplicativo host também solicita a permissão ao sistema e exibe um prompt. Se o usuário negar a solicitação e selecionar "Não perguntar novamente", chamadas subsequentes poderão acionar diretamente o callback fail. Nesse cenário, chame WVUIDialog.showAuthGuide para abrir a página de configurações de permissão do sistema e orientar o usuário a ativar a permissão manualmente.
wv.getAuthCode: Informações pessoais do usuário
A API wv.getAuthCode solicita que os usuários concedam ao miniapp atual acesso às suas informações pessoais, como nome e dados de contato, por meio de um prompt de autorização flutuante. Recomendamos chamar wv.getAuthCode somente após os usuários compreenderem totalmente os serviços do seu miniapp. Evite chamar wv.getAuthCode na tela inicial do miniapp, pois isso pode prejudicar a experiência do usuário.
O servidor backend do miniapp deve utilizar o código de autorização (authCode) retornado por wv.getAuthCode. O servidor pode então trocar esse código com a plataforma para obter informações pessoais do usuário, como ID do usuário, avatar, apelido, número de telefone, região, gênero e data de nascimento.
A Alibaba Cloud SuperApp Application Open Platform fornece a definição padrão da API para wv.getAuthCode. No entanto, como a plataforma não tem acesso às informações de usuário dos SuperApps clientes, o desenvolvedor do SuperApp é responsável por implementar essa API. Para uma implementação de referência, consulte Melhores práticas para implementação de padrões técnicos do SuperApp.
Controle de escopo
Um escopo define o conjunto de permissões que um desenvolvedor solicita a um usuário.
Declare os escopos necessários para o controle de permissões.
Para escopos relacionados a informações sensíveis, uma ação do usuário deve iniciar a solicitação de autorização; ela não pode ser acionada automaticamente em segundo plano.
Escopo | API correspondente | Descrição | API de autorização |
USER_ID | - | Concede permissão para obter o identificador exclusivo do usuário (user_id). Esta é uma autorização silenciosa, sem exibição de caixa de diálogo. | API de autorização: wv.getAuthCode |
USER_NICKNAME | - | Concede permissão para obter o apelido do usuário do aplicativo. | |
USER_NAME | - | Concede permissão para obter o nome do usuário do aplicativo. | |
USER_LOGIN_ID | - | Concede permissão para obter o ID de login do usuário do aplicativo. | |
HASH_LOGIN_ID | - | Concede permissão para obter o hash do ID de login do usuário do aplicativo. | |
USER_AVATAR | - | Concede permissão para obter o avatar do usuário do aplicativo. | |
USER_GENDER | - | Concede permissão para obter o gênero do usuário do aplicativo. | |
USER_BIRTHDAY | - | Concede permissão para obter a data de nascimento do usuário do aplicativo. | |
USER_NATIONALITY | - | Concede permissão para obter a nacionalidade do usuário do aplicativo. | |
USER_CONTACTINFO | - | Concede permissão para obter as informações de contato do usuário do aplicativo. | |
auth_base | - | Concede permissão para obter o identificador exclusivo do usuário (user_id). Esta é uma autorização silenciosa, sem exibição de caixa de diálogo. | |
auth_user | - | Concede permissão para obter as informações da conta do aplicativo. | |
location | Autorização de geolocalização | API de autorização: wv.authorize | |
camera | Autorização de câmera | ||
Bluetooth | Todos os métodos de WVBluetooth | Autorização de Bluetooth | |
album | Autorização de álbum | ||
contacts | Todos os métodos de WVContacts | Autorização de contatos | |
microphone | Autorização de microfone | ||
file | Autorização de arquivo | ||
call | Autorização de chamada | ||
vibration | Autorização de vibração | ||
screen capture | Autorização de captura de tela |