Flutter -Plugin zum Anmelden über vk.com.
Fügen Sie einfach die VK -Login -Funktion in Ihre Anwendung hinzu. Benutzerprofilinformationen enthalten.
VK SDK -Version, verwendet im Plugin:
iOS: ^1.6 (Cocoapods)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 und höher.
Android 5.0 und neuer (SDK 21 ). Minimum compileSdkVersion
31 .
Um dieses Plugin zu verwenden:
Fügen Sie flutter_login_vk
als Abhängigkeit in Ihrer PUBSPEC.YAML -Datei hinzu;
Erstellen Sie eine App auf vk.com
Setup Android;
Setup iOS;
zusätzliche VK.com -App -Setup;
Verwenden Sie Plugin in Anwendung.
In der Dokumentation auf vk.com finden Sie vollständige Informationen:
iOS SDK
Android SDK
Und hier sind Anweisungen in Russian, wenn es sich um Ihre Muttersprache handelt (рсская версия).
Erstellen Sie eine App auf vk.com https://vk.com/editapp?act=create
Geben Sie "Titel" ein.
Wählen Sie eigenständige App als "Plattform".
Klicken Sie auf "App herstellen".
Eine Anwendung wird erstellt. Wählen Sie nun die Registerkarte "Einstellungen" und kopieren Sie "App -ID" (in diesem Readme als [APP_ID]
bezeichnet).
Setzen Sie Package name for Android
- Ihr Paketname für Android -Anwendung ( package
in AndroidManifest.xml
).
Stellen Sie Main activity for Android
fest - Ihre Hauptaktivitätsklasse (mit Paket). Standardmäßig wäre es com.yourcompany.yourapp.MainActivity
.
Um Signing certificate fingerprint for Android
zu füllen, sollten Sie den SHA1 -Fingerabdruck erstellen, wie in der Dokumentation (ohne SHA1:
Präfix) beschrieben. Achten Sie darauf : Sie sollten alle Kolons aus der Fingerabdruck -Saite entfernen. Fügen Sie Fingerabdrücke für Debug- und Veröffentlichungszertifikate hinzu. Hinweis: Wenn Ihre Anwendung die Google Play App-Signierung verwendet, sollten Sie das Zertifikat SHA-1-Fingerabdruck von Google Play Console erhalten.
Klicken Sie auf "Speichern".
Fügen Sie Ihre Bundle -Kennung hinzu - setzen Sie App Bundle ID for iOS
(finden Sie sie in Xcode: Läufer - Zielläufer - Allgemein, Identity
, Bundle Identifier
).
Setzen Sie auch App ID for iOS
, es ist Sie SKU
(Sie finden es in App Store Connect: Meine Apps - {Ihre Anwendung} - App Store - App -Informationen, Abschnitt "Allgemeine Informationen"). Meistens ist es nicht dasselbe wie die Bündel -ID.
Klicken Sie auf "Speichern".
Bearbeiten Sie AndroidManifest.xml
( android/app/src/main/AndroidManifest.xml
):
Fügen Sie die INTERNET
in der Wurzel von <manifest>
hinzu, wenn Sie es nicht getan haben (wahrscheinlich haben Sie):
<Nutzungsvermittlung Android: name = "android.permission.internet" />
Fügen Sie der application
eine Aktivität hinzu:
<Aktivität Android: name = "com.vk.sdk.vkServicectivity" Android: label = "servicectivity" Android: thema = "@style /vk.transparent" />
Fügen Sie Ihre VK -Anwendungskennung in die Ressourcendatei (z. B. strings.xml
) hinzu, wobei [APP_ID]
durch Ihre Anwendungs -ID ersetzt wird:
<ressourcen> <Integer name = "com_vk_sdk_appid"> [app_id] </integer> </ressourcen>
Regeln hinzufügen -keep class com.vk.** { *; }
In Ihrer Proguard-Datei ( android/app/proguard-rules.pro
).
Siehe Full AndroidManifest.xml
in Beispiel.
Konfigurieren Sie Info.plist
( ios/Runner/Info.plist
). Sie können es als Textdatei aus Ihrer IDE bearbeiten oder das Projekt ( ios/Runner.xcworkspace
) in Xcode öffnen.
Klicken Sie in Xcode mit der rechten Maustaste auf Info.plist
und wählen Sie Open As Source Code
.
Kopieren Sie das folgende XML -Snippet in den Körper Ihrer Datei ( <dict>...</dict>
) und ersetzen Sie [APP_ID]
durch Ihre Anwendungs -ID:
<Key> cfbundleurLtypes </key> <array> <Dict> <Key> cfbundleurlschemes </key> <array> <string> vk [app_id] </string> </array> </dict> </array>
Auch zu Info.plist
Body ( <dict>...</dict>
) hinzufügen:
<Key> lsApplicationQuerieSchemes </key> <array> <string> vk </string> <string> vk-share </string> <String> vkAuthorize </string> </array>
Geben Sie Ihre VK -Anwendungskennung ein.
<Key> vkappid </key> <string> [app_id] </string>
Siehe vollständige Info.plist
In Beispiel.
CFBundleURLTypes
oder LSApplicationQueriesSchemes
-Schlüssel in Ihrer Info.plist
haben. Wenn Sie haben, sollten Sie ihre Werte zusammenführen, anstatt einen doppelten Schlüssel hinzuzufügen.
Wenn Sie scope=nohttps
verwenden möchten, das wir dringend empfehlen , sollten Sie auch NSAppTransportSecurity
hinzufügen, siehe Dokumentation.
Gehen Sie zu meinen Apps und klicken Sie in Ihrer App auf "Verwalten".
Auf der Registerkarte "Informationen" sollten Sie:
Geben Sie "Beschreibung" ein.
Wählen Sie eine geeignete "Kategorie".
Laden Sie ein kleines Symbol "32x32 -Symbol" hoch.
Klicken Sie auf "Speichern".
Laden Sie "Square Banner" und "Ein quadratisches Banner für Katalog" hoch - der Benutzer kann es sehen.
Richten Sie andere Einstellungen ein, wenn Sie diese benötigen.
Gehen Sie als Registerkarte "Einstellen" und aktivieren Sie die Anwendung: Ändern Sie "App -Status" von Application off
auf Application on and visible to all
.
Klicken Sie auf "Speichern".
Zunächst sollten Sie eine Instanz von VKLogin
erstellen. Vor einer Methode, accessToken
aufrufen oder überprüfen, sollten Sie VK SDK initialisieren:
endgültig vk = vklogin (); warte vk.initsdk ();
Jetzt können Sie das Plugin verwenden.
Merkmale:
Melden Sie sich über vk.com an;
Erhalten Sie Zugangstoken;
Benutzerprofil erhalten;
Benutzer -E -Mail erhalten;
Überprüfen Sie, ob Sie angemeldet sind;
Melden Sie sich aus.
Beispielcode:
Importieren Sie 'Paket: flutter_login_vk/flutter_login_vk.dart'; // Erstellen Sie eine Instanz von vkloginfinal vk = vklogin (); // initializeawait vk.initsdk (); // log Infinal res = Await vk.login (Scope: [vkscope.Email , Vkscope.friends, ]); // Überprüfen Sie das Ergebnis (res.isValue) {// Es gibt keinen Fehler, aber wir wissen es noch nicht // Wenn der Benutzer angemeldet ist oder nicht. // Sie sollten iscanceled überprüfen endgültiges vkloginResult Ergebnis = res.aSValue! .Value; if (result.iscanceled) {// Benutzer abbrechen anmelden } else {// Anmeldung in // Zugriffsstoken an Server zur Validierung und Authfinal vkaccessToken an den Server senden? AccessToken = result.accessToken; if (accessToken! = null) {print ('Access -Token: $ {accessToken.token}'); // Profildaten endgültige Profiler erhalten = warte vk.getUserProfile (); Final Profile = Profileres.AsValue? .Value; if (profil! } // E -Mail abrufen (da wir E -Mail -Berechtigungen anfordern) endgültig E -Mail = Warten Sie vk.getUseremail (); print ('und deine E -Mail ist $ mail'); } else {print ('etwas geht schief'); } } } else {// Anmeldung fehlgeschlagen endgültig errorrres = res.aSerror!;; print ('Fehler während des Anmelden in: $ {errorres.Error}'); }
Wenn Sie initSdk()
anrufen, versuchen Sie, die vorherige Sitzung wiederherzustellen. Wenn Token abgelaufen ist, wird es aktualisiert.
Während des Wiederherstellens kann sich der Benutzer im Bildschirm anmelden (nur wenn der Benutzer angemeldet wurde).
Zusätzlich können Sie an den erforderlichen scope
initSdk()
übergeben, und wenn die aktuelle Benutzersitzung nicht bereitgestellt wird, wird der Benutzer angemeldet.
Sie können auch eine API -Version angeben, die Sie verwenden können, sollten Sie dies jedoch nicht.