Flutter Plugin para fazer login via vk.com.
Adicione facilmente o recurso de login VK em seu aplicativo. Informações do perfil do usuário incluídas.
Versão VK SDK, usada no plug -in:
iOS: ^1.6 (Cocoapods)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 e superior.
Android 5.0 e mais recente (SDK 21 ). Mínimo compileSdkVersion 31 .
Para usar este plugin:
Adicione flutter_login_vk como uma dependência no seu arquivo pubSpec.yaml;
Crie um aplicativo no VK.com
configuração Android;
configurar iOS;
Configuração adicional do aplicativo VK.com;
Use o plug -in no aplicativo.
Consulte a documentação no VK.com para obter informações completas:
iOS SDK
Android SDK
E aqui estão as instruções em russo, se for o seu idioma nativo (рhсс в вее).
Crie um aplicativo em vk.com https://vk.com/editapp?act=create
Digite "Title".
Selecione o aplicativo independente como "plataforma".
Clique em "Connect App".
Um aplicativo será criado. Agora selecione a guia "Configurações" e copiar ID do aplicativo "(referenciado como [APP_ID] neste ReadMe).
Defina Package name for Android - o nome do seu pacote para Android Application ( package de atributos no AndroidManifest.xml ).
Defina Main activity for Android - sua classe de atividade principal (com o pacote). Por padrão, seria com.yourcompany.yourapp.MainActivity .
Para preencher Signing certificate fingerprint for Android você deve criar impressão digital SHA1, conforme descrito na documentação (sem SHA1: prefixo). Preste atenção : você deve remover todos os dois pontos da sequência de impressão digital. Adicione impressões digitais para certificados de depuração e liberação. Nota: Se o seu aplicativo usar a assinatura do aplicativo do Google Play, você deve obter impressão digital SHA-1 do Google Play Console.
Clique em "Salvar".
Adicione seu identificador de pacote - Defina App Bundle ID for iOS (você pode encontrá -lo no XCode: Runner - Target Runner - Geral, seção Identity , Bundle Identifier de campo).
Defina também App ID for iOS , é você SKU (você pode encontrá -lo na App Store Connect: My Apps - {Your Application} - App Store - Informações do aplicativo, seção "Informações gerais"). Muitas vezes, não é o mesmo que o ID do pacote.
Clique em "Salvar".
Edite AndroidManifest.xml ( android/app/src/main/AndroidManifest.xml ):
Adicione a permissão INTERNET na raiz de <manifest> , se você não tem (provavelmente você tem):
<usa-permission Android: name = "android.permission.internet" />
Adicione uma atividade ao application da seção:
<Atividade Android: name = "com.vk.sdk.vkServiceActivity" Android: Label = "ServiceActivity" Android: tema = "@style /vk.transparent" />
Adicione seu identificador de aplicativo VK ao arquivo de recursos (por exemplo, strings.xml ), substituindo [APP_ID] pelo seu ID do aplicativo:
<Resources>
<name inteiro = "com_vk_sdk_appid"> [APP_ID] </INTEGER>
</recursos> Adicionar regras -keep class com.vk.** { *; } em seu arquivo proguard ( android/app/proguard-rules.pro ).
Consulte Full AndroidManifest.xml no exemplo.
Configure Info.plist ( ios/Runner/Info.plist ). Você pode editá -lo como um arquivo de texto do seu IDE ou abrir o Project ( ios/Runner.xcworkspace ) no Xcode.
No Xcode, clique com o botão direito do mouse no Info.plist e escolha Open As Source Code .
Copie e cole o seguinte snippet xml no corpo do seu arquivo ( <dict>...</dict> ), substituindo [APP_ID] pelo seu ID do aplicativo:
<Key> CFBNEDLEURLTYPES </KEY>
<Array>
<dict>
<Key> cfbNuDLEURLSCHEMES </key>
<Array>
<string> vk [app_id] </string>
</ray>
</dict>
</ray> Adicione também a Info.plist corpo ( <dict>...</dict> ):
<Key> lsApplicationQueriessChemes </key>
<Array>
<string> vk </string>
<string> vk-share </string>
<string> VkAuthorize </string>
</ray>Digite seu identificador de aplicativo VK.
<Key> VKAppid </ Key> <string> [app_id] </string>
Consulte Info.plist COMPLETO.PLIST no exemplo.
CFBundleURLTypes ou LSApplicationQueriesSchemes em sua Info.plist . Se tiver, você deve mesclar os valores deles, em vez de adicionar uma chave duplicada.
Se você deseja usar scope=nohttps , que não recomendamos fortemente, também deve adicionar NSAppTransportSecurity , consulte a documentação.
Vá para meus aplicativos e clique em "Gerenciar" no seu aplicativo.
Na guia "Informações", você deve:
Digite "Descrição".
Selecione uma "categoria" adequada.
Carregue o ícone pequeno "Ícone 32x32".
Clique em "Salvar".
Carregue "Banner quadrado" e "um banner quadrado para catálogo" - o usuário pode vê -lo.
Configure outras configurações, se precisar.
Do que ir para a guia "Configurar" e ativar o aplicativo: altere o status do aplicativo "do Application off para Application on and visible to all .
Clique em "Salvar".
Primeiro, você deve criar uma instância de VKLogin . Do que, antes de qualquer método ligar ou verificar accessToken você deve inicializar o VK SDK:
final vk = vklogin (); aguarda vk.initsdk ();
Agora você pode usar o plug -in.
Características:
Faça login via vk.com;
Obtenha token de acesso;
obter perfil de usuário;
Obtenha e -mail do usuário;
Verifique se conectado;
Log Out.
Código de exemplo:
Importar 'Package: flutter_login_vk/flutter_login_vk.dart'; // Crie uma instância de vkLoginfinal vk = vklogin (); // Initializeawait vk.initsdk (); // log infinal res = wait vk.login (scope: [vkscope.Al. , Vkscope.friends,
]); // verifique o resultado (res.isValue) {// não há erro, mas ainda não sabemos
// Se o usuário logou ou não.
// você deve verificar iscanceled
final vkloginResult resultado = res.asvalue! .Value; if (result.cenceled) {// Cancelar o usuário de login
} else {// logado // Envie o token de acesso ao servidor para validação e autfinal vkacccessToken? accessToken = resultado.accessToken; if (accessToken! = null) {print ('Token de acesso: $ {AccessToken.token}'); // Obter dados do perfil Final Profilerres = Aguarda vk.getUserProfile (); perfil final = profileres.asvalue? .Value; if (perfil! = null) {print ('hello, $ {perfil.firstname}! you id: $ {perfil.userId}');
} // Receba email (já que solicitamos permissões de email) email final = aguarda vk.getUsereMail (); print ('e seu email é $ e -mail');
} else {print ('algo dá errado');
}
}
} else {// efetuar login falhado
Final Errorres = Res.aserror!; print ('Erro durante o login: $ {errorres.error}');
} Quando você liga initSdk() , o plug -in tente restaurar a sessão anterior. Se o token tiver sido expirado - ele será atualizado.
Além disso, durante a restauração, a tela de login pode ser mostrada ao usuário (apenas se o usuário foi conectado).
Além disso, você pode passar para o scope initSdk() e, se a sessão atual do usuário não o fornecer - o usuário será registrado.
Além disso, você pode especificar a versão da API para usar, mas não deve.