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:
Verificação de autorização de dispositivo
Limpeza automática de cookies para miniaplicativos WindVane quando o SDK detecta troca de conta
Relatório de dados (Page Views (PV) e Unique Visitors (UV)) — requer o plugin de relatórios
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());
}