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
如果这是您的母语,这里是俄语的指示(¶。
在vk.com上创建一个应用
输入“标题”。
选择独立应用程序作为“平台”。
单击“连接应用程序”。
将创建一个应用程序。现在,选择“设置”选项卡,然后复制“应用程序ID”(在此读取中引用为[APP_ID]
)。
设置Package name for Android
- 您的Android应用程序的软件包名称( AndroidManifest.xml
中的属性package
)。
Main activity for Android
- 您的主要活动类(带包装)。默认情况下将是com.yourcompany.yourapp.MainActivity
。
要填写Signing certificate fingerprint for Android
您应该如文档中所述创建SHA1指纹(无SHA1:
前缀)。请注意:您应该从指纹字符串中删除所有结肠。为调试和发布证书添加指纹。注意:如果您的应用程序使用Google Play应用程序签名,则应从Google Play游戏机中获得证书SHA-1指纹。
单击“保存”。
添加您的捆绑包标识符 - App Bundle ID for iOS
(您可以在XCode:Runner -Target Runner-常规,段, Identity
,字段Bundle Identifier
中找到它)。
还App ID for iOS
,它是您的SKU
(您可以在App Store Connect中找到它:我的应用程序 - {您的应用程序} - App Store-应用程序 - 应用程序信息,“常规信息”部分)。通常,通常与捆绑ID不一样。
单击“保存”。
编辑AndroidManifest.xml
( android/app/src/main/AndroidManifest.xml
):
在<manifest>
的根部添加INTERNET
许可,如果您没有(可能您有):
<使用use-permission android:name =“ android.permission.internet” />
将活动添加到该部分application
:
<活动android:name =“ com.vk.sdk.vkserviceactivity” android:label =“ serviceActivity” android:them =“@style /vk.transparent” />
将您的VK应用程序标识符添加到资源文件(例如strings.xml
)中,用您的应用程序ID替换[APP_ID]
:
<资源> <integer name =“ com_vk_sdk_appid”> [app_id] </integer> </resources>
添加规则-keep class com.vk.** { *; }
在您的proguard文件( android/app/proguard-rules.pro
)中。
请参见full AndroidManifest.xml
示例。
配置Info.plist
( ios/Runner/Info.plist
)。您可以从IDE中将其编辑为文本文件,也可以在Xcode中打开项目( ios/Runner.xcworkspace
)。
在xcode中右键单击Info.plist
,然后选择Open As Source Code
。
将以下XML片段复制到您的文件正文( <dict>...</dict>
)中,用您的应用程序ID替换[APP_ID]
:
<key> cfbundleurltypes </key> <Array> <dict> <key> cfbundleurlschemes </key> <Array> <string> vk [app_id] </string> </array> </dict> </array>
还添加<dict>...</dict>
Info.plist
。
<key> lsapplicationqueriesschemes </key> <Array> <string> vk </string> <string> vk-share </string> <string> vkauthorize </string> </array>
输入您的VK应用程序标识符。
<key> vkappid </key> <string> [app_id] </string>
请参阅示例中的完整Info.plist
。
Info.plist
中的CFBundleURLTypes
或LSApplicationQueriesSchemes
键。如果有的话,您应该合并它们的值,而不是添加重复的密钥。
如果您想使用scope=nohttps
(我们强烈建议) ,也应该添加NSAppTransportSecurity
,请参阅文档。
转到我的应用程序,然后单击您的应用程序上的“管理”。
在标签“信息”上,您应该:
输入“描述”。
选择合适的“类别”。
上传小图标“ 32x32图标”。
单击“保存”。
上传“ Square Banner”和“用于目录的方形横幅” - 用户可以看到它。
设置其他设置(如果需要)。
而不是转到“设置”选项卡并打开应用程序:更改“应用程序状态”从Application off
到Application on and visible to all
。
单击“保存”。
首先,您应该创建一个VKLogin
的实例。比,在任何方法调用或检查accessToken
之前,您应该初始化VK SDK:
最终vk = vklogin();等待vk.initsdk();
现在您可以使用插件。
特征:
通过vk.com登录;
获取访问令牌;
获取用户资料;
获取用户电子邮件;
检查是否登录;
注销。
示例代码:
导入'软件包:flutter_login_vk/flutter_login_vk.dart'; //创建一个vkloginfinal vk的实例,vkscope.friends, ]); //检查resultif(res.isvalue){//没有错误,但我们还不知道 //用户是否登录。 //您应该检查iScanceed 最终的vkloginresult结果= res.asvalue!.value; if(结果。信息){//用户取消登录 } else {//登录//将访问令牌发送到服务器以进行验证和authfinal vkaccesstoken? AccessToken = result.AccessToken; if(accessToken!= null){print('access token:$ {accessToken.token}'); //获取配置文件数据最终profileres =等待vk.getuserprofile(); 最终概况= profileres.asvalue?.value; if(profile!= null){print('Hello,$ {profile.firstname}!您ID:$ {profile.userid}'); } //获取电子邮件(因为我们请求电子邮件权限)最终电子邮件=等待vk.getuseremail(); 打印(“和您的电子邮件是$电子邮件”); } else {print('某物出了问题'); } } } else {//登录失败 最终错误= res.aserror!; print('错误时登录:$ {errorres.error}'); }
当您调用initSdk()
时,插件尝试还原上一个会话。如果令牌已过期 - 它将被刷新。
同样,在还原过程中,可以向用户显示登录屏幕(仅在用户登录时)。
另外,您可以传递到initSdk()
必需的scope
,如果当前用户会话未提供,则将登录用户。
您也可以指定要使用的API版本,但不应该使用。