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.