Плагин Flutter для входа через vk.com.
Легко добавить функцию входа в систему VK в ваше приложение. Информация о профиле пользователя включена.
Версия VK SDK, используемая в плагине:
iOS: ^1.6 (кокопод)
Android: 3.5.0 (Maven Core, API)
iOS 9.0 и выше.
Android 5.0 и новее (SDK 21 ). Минимальный compileSdkVersion
31 .
Чтобы использовать этот плагин:
Добавить flutter_login_vk
в качестве зависимости в вашем файле pubspec.yaml;
Создайте приложение на vk.com
Настройка Android;
настройка iOS;
Дополнительная настройка приложения VK.com;
Используйте плагин в приложении.
Смотрите документацию на VK.com для полной информации:
ios sdk
Android SDK
А вот инструкции по -русски, если это ваш родной язык (russkaya -ersip).
Создать приложение на vk.com https://vk.com/editapp?act=create
Введите «заголовок».
Выберите автономное приложение как «платформа».
Нажмите «Подключить приложение».
Приложение будет создано. Теперь выберите вкладку «Настройки» и скопируйте «Идентификатор приложения» (ссылка на [APP_ID]
в этом чтении).
Установите Package name for Android
- имя вашего пакета для приложения Android ( package
атрибутов в AndroidManifest.xml
).
Установите Main activity for Android
- ваш основной класс активности (с пакетом). По умолчанию это будет com.yourcompany.yourapp.MainActivity
.
Чтобы заполнить Signing certificate fingerprint for Android
вы должны создать отпечаток пальца SHA1, как описано в документации (без SHA1:
PREFIX). Обратите внимание : вы должны удалить все колоны из строки отпечатков пальцев. Добавить отпечатки пальцев для отладки и сертификатов выпуска. Примечание. Если в вашем приложении используется подписание приложения Google Play, то вы должны получить сертификат SHA-1 отпечатков пальцев от Google Play Console.
Нажмите «Сохранить».
Добавьте свой идентификатор пакета - установите App Bundle ID for iOS
(вы можете найти его в XCode: Runner - Target Runner - General, Identity
секции, Bundle Identifier
полевых веществ).
Также установите App ID for iOS
, это вы SKU
(вы можете найти его в App Store Connect: My Apps - {ваше приложение} - App Store - Информация о приложении, раздел «Общая информация»). В основном часто не то же самое, что идентификатор пакета.
Нажмите «Сохранить».
Редактировать AndroidManifest.xml
( android/app/src/main/AndroidManifest.xml
):
Добавьте разрешение INTERNET
в корне <manifest>
, если у вас нет (вероятно, у вас есть):
<users-permission android: name = "android.permission.internet" />
Добавьте действие в application
раздела:
<Activity Android: name = "com.vk.sdk.vkserviceactivity" Android: Label = "ServiceActivity" Android: Theme = "@Style /Vk.transparent" />
Добавьте свой идентификатор приложения VK в файл ресурса (например, strings.xml
), заменив [APP_ID]
на идентификатор вашего приложения:
<Ресурсы> <integer name = "com_vk_sdk_appid"> [app_id] </integer> </resources>
Добавить правила -keep class com.vk.** { *; }
В вашем Proguard File ( android/app/proguard-rules.pro
).
См. Полный AndroidManifest.xml
в примере.
Настройте Info.plist
( ios/Runner/Info.plist
). Вы можете отредактировать его в виде текстового файла из вашего IDE, или вы можете открыть Project ( ios/Runner.xcworkspace
) в XCode.
В XCode Щелкните правой кнопкой мыши Info.plist
и выберите Open As Source Code
.
Скопируйте и вставьте следующий фрагмент XML в корпус вашего файла ( <dict>...</dict>
), заменить [APP_ID]
на идентификатор вашего приложения:
<ключ> cfbundleurltypes </key> <Array> <dict> <Key> cfbundleurlschemes </key> <Array> <string> vk [app_id] </string> </array> </dict> </array>
Также добавьте в корпус Info.plist
( <dict>...</dict>
):
<ключ> lsapplicationQueriesschemes </key> <Array> <string> vk </string> <string> vk-share </string> <string> vkauthorize </string> </array>
Введите идентификатор приложения VK.
<ключ> vkappid </key> <string> [app_id] </string>
Смотрите полную Info.plist
в примере.
CFBundleURLTypes
или LSApplicationQueriesSchemes
в вашем Info.plist
. Если у вас есть, вы должны объединить их значения, вместо того, чтобы добавлять дублированный ключ.
Если вы хотите использовать scope=nohttps
, который мы настоятельно не рекомендуем , вы также должны добавить NSAppTransportSecurity
, см. Документацию.
Перейдите в мои приложения и нажмите «Управление» в вашем приложении.
На вкладке «Информация», вы должны:
Введите «Описание».
Выберите подходящую «категорию».
Загрузите маленький значок "32x32 значок".
Нажмите «Сохранить».
Загрузите «квадратный баннер» и «квадратный баннер для каталога» - пользователь может его увидеть.
Настройка других настроек, если вам это нужно.
Чем перейдите на вкладку «Настройка» и включите приложение: изменить статус приложения »из Application off
к Application on and visible to all
.
Нажмите «Сохранить».
Во -первых, вы должны создать экземпляр VKLogin
. Чем, прежде чем какой -либо метод вызова или проверка accessToken
вы должны инициализировать VK SDK:
final vk = vklogin (); wait vk.initsdk ();
Теперь вы можете использовать плагин.
Функции:
Войдите через VK.com;
получить токен доступа;
Получить профиль пользователя;
Получить электронную почту пользователя;
Проверьте, зарегистрировано;
выходите из строя.
Пример кода:
Импорт 'пакет: flutter_login_vk/flutter_login_vk.dart'; // Создать экземпляр Vkloginfinal vk = vklogin (); // initiazeawait vk.intsdk (); // log infinal res = await vk.login (scope: [vkscope.email , Vkscope.friends, ]); // Проверить resultif (res.isvalue) {// нет ошибки, но мы еще не знаем // Если пользователь вошел в систему или нет. // Вы должны проверить Iscancell окончательный vkloginResult result = res.asvalue! .value; if (result.iscancell) {// Пользовательский вход в систему } else {// Вошли в // Отправить токен доступа на сервер для проверки и authfinal vkaccesstoken? accesstoken = result.accesstoken; if (accesstoken! = null) {print ('access token: $ {accesstoken.token}'); // Получить данные профиля Final Profileres = wait vk.getUserProfile (); Окончательный профиль = profileres.asvalue?.. Value; if (profile! = null) {print ('hello, $ {profile.firstname}! You Id: $ {profile.userid}'); } // Получить электронную почту (так как мы запрашиваем разрешения по электронной почте) окончательное письмо = await vk.getUseremail (); print (', а ваша электронная почта - $ amile'); } else {print ('что -то идет не так'); } } } else {// log внедрение не удалось final errorres = res.aserror!; print ('ошибка во время входа в систему: $ {errorres.error}'); }
Когда вы звоните initSdk()
, плагин попробуйте восстановить предыдущий сеанс. Если токен истек - он будет обновлен.
Кроме того, во время восстановления экран журнала может быть показан пользователю (только в том случае, если пользователь был вошел в систему).
Кроме того, вы можете перейти к initSdk()
требуемой scope
, и если текущий сеанс пользователя не предоставит его - пользователь будет вычеркнут.
Также вы можете указать версию API для использования, но вы не должны.