繁体   English   中英

如何检测用户是否为我的应用启用了iCloud?

[英]How to detect if the user has iCloud enabled for my app?

我开发了支持iCloud的iPhone应用程序,但我遇到的问题是,即使用户为我的应用程序关闭iCloud备份,它也会重新启动iCloud并反映我的其他设备上的更改,所以我想知道如何我可以得到我的应用程序是否启用了iCloud。

它专门用于App not for Device,如果设备启用了iCloud,但我的应用程序已关闭,那么它不应该进行任何备份。

如果您使用的是键值而不是文档存储,我建议您使用此选项。

id iCloudToken = [[NSFileManager defaultManager] ubiquityIdentityToken];
if ( iCloudToken != nil) {
// User has enabled icloud in your app...
} else {
// Icloud is not enabled for your app...
}

现在我推荐上述方法的原因是,在新的Xcode编译器中,您现在可以决定是否要使用文档存储。 如果您选择仅使用键值存储,则NSFileManager检查将失败,因为您没有在权利中定义容器标识符。 但是,如果用户允许您的应用运行,ubiquityIdentityToken将始终存在,这意味着如果用户允许您的应用访问iCloud,它将始终触发true或false。

请使用此选项检查iCloud的状态是否已启用。

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:nil]; 
NSLog(@"%@", [iCloudURL absoluteString]); 

if(iCloudURL){ 
NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore]; 
[iCloudStore setString:@"Success" forKey:@"iCloudStatus"]; 
[iCloudStore synchronize]; // For Synchronizing with iCloud Server 
NSLog(@"iCloud status : %@", [iCloudStore stringForKey:@"iCloudStatus"]); 
}

这将告诉你它是否是ON / OFF :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM