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