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.