在 iOS 中,AWS Cognito 的 IdentityID 是与设备相关的,而不是与系统相关的。这意味着,当用户更新系统后,IdentityID 不会保留。因此,你需要在每次应用程序启动时重新获取 IdentityID。
以下是一个示例代码,演示如何在 iOS 中使用 AWS Cognito 获取 IdentityID:
import AWSCognitoIdentityProvider
let poolId = "YOUR_COGNITO_POOL_ID"
let clientId = "YOUR_COGNITO_CLIENT_ID"
let poolRegion = AWSRegionType.YOUR_COGNITO_POOL_REGION
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: poolRegion, identityPoolId: poolId, identityProviderManager: nil)
let configuration = AWSServiceConfiguration(region: poolRegion, credentialsProvider: credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
credentialsProvider.getIdentityId().continueWith { (task) -> Any? in
if let error = task.error {
print("Error: \(error)")
} else if let identityId = task.result {
print("IdentityID: \(identityId)")
}
return nil
}
这段代码会异步获取 IdentityID。如果成功,它会打印出 IdentityID;如果失败,它会打印出错误信息。
请注意,由于 IdentityID 是与设备相关的,当用户更新系统后,IdentityID 会被重置。因此,你需要在每次启动应用程序时重新获取 IdentityID,并将其存储在你的应用程序中以供后续使用。