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版本,但不应该使用。