Todos os produtos
Search
Central de documentação

SuperApp:Associar um usuário

Última atualização: Jun 29, 2026

Após integrar um contêiner de miniaplicativo WindVane ou uni-app ao seu aplicativo nativo, associe o usuário conectado ao contêiner em tempo de execução.

O contêiner de miniaplicativo usa o userId para oferecer suporte aos seguintes recursos:

  1. Verificação de autorização de dispositivo

  2. Limpeza automática de cookies para miniaplicativos WindVane quando o SDK detecta troca de conta

  3. Relatório de dados (Page Views (PV) e Unique Visitors (UV)) — requer o plugin de relatórios

  4. Lançamento canário baseado em lista de permissões na plataforma de aplicativos abertos

Associar um usuário

Registre IUserInfoService no ServiceManager para fornecer a identidade do usuário atual ao contêiner. Retorne um objeto UserInfo com o userId defina quando houver um usuário conectado ou null caso contrário. O userId deve identificar exclusivamente o usuário no aplicativo.

ServiceManager.getInstance().registerService(IUserInfoService.class.getName(), new IUserInfoService() {
    @Override
    public UserInfo getUserInfo() {
        // Returns UserInfo based on the login status. Returns null if no user is logged in.
        UserInfo userInfo = new UserInfo();
        userInfo.setUserId(userId);
        return userInfo;
    }
});

Verificar a autorização do dispositivo

Chame getUserInfo() para obter o userId do usuário atual e passe-o para AuthorizationManagement.isAuthorized() para verificar se o dispositivo está autorizado.

private boolean isAuthorized() {
    IUserInfoService userInfoService = ServiceManager.getInstance()
        .getService(IUserInfoService.class.getName());

    // ...

    UserInfo userInfo = userInfoService.getUserInfo();

    // ...

    return AuthorizationManagement
        .getInstance(mContext)
        .isAuthorized(innerScope, userInfo.getUserId(), appId);
}

Limpar cookies

O SDK chama automaticamente getUserInfo() para detectar trocas de conta e limpar cookies dos miniaplicativos WindVane. O exemplo a seguir mostra uma implementação típica:

private void clearMiniAppCookies(...) {
    IUserInfoService userInfoService = ServiceManager.getInstance()
        .getService(IUserInfoService.class.getName());

    // ...

    UserInfo userInfo = userInfoService.getUserInfo();

    // ...

    if (isDifferentUser(userInfo.getUserId())) {
        clearCookie();
    }
}

Reportar dados

Chame getUserInfo() para obter o userId do usuário atual e transmiti-lo à função de relatório. Isso permite rastrear Page View (PV) e Unique Visitor (UV) por usuário.

private void reportData(...) {
    IUserInfoService userInfoService = ServiceManager.getInstance()
        .getService(IUserInfoService.class.getName());

    // ...

    UserInfo userInfo = userInfoService.getUserInfo();

    // ...

    report(userInfo.getUserId());
}