如何确定在iOS设备上是否安装了Dropbox?

我的应用程序使用Dropbox来允许用户备份他们的核心数据存储。 有没有一种方法来确定编程的Dropbox应用程序已经安装,所以我可以提示用户设置备份? 我不想冒用不使用Dropbox的用户,但是我想尽可能多地让用户使用备份。

Dropbox定义了自己的URIschemedbapi-1 ,因此你可以看到操作系统是否可以使用该scheme打开URL,如下所示:

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"dbapi-1://"]]) { NSLog(@"Dropbox is installed."); } else { NSLog(@"Dropbox is not installed."); } 

目前接受的答案是不恰当的。 dbapi-1可能无法正常工作。 这真的取决于你是否使用SDK(你应该)。

如果您阅读了DBChooser.m的代码( https://github.com/dropbox/dropbox-ios-dropins-sdk/blob/master/DBChooser/DBChooser.m ),您将看到以下方法:

 + (NSURL*)dbc_chooserURLForAppKey:(NSString*)appKey linkType:(DBChooserLinkType)linkType { NSString *baseURL = [NSString stringWithFormat:@"%@://%@/chooser", kDBCProtocol, kDBCAPIVersion]; NSString *linkTypeString = [[self class] dbc_getLinkTypeString:linkType]; return [NSURL URLWithString:[NSString stringWithFormat:@"%@?k=%@&linkType=%@", baseURL, appKey, linkTypeString]]; } 

常数kDBCProtocol是你所需要的。 目前最新的是dbapi-3 。 如果您使用最新的Dropbox sdk,则应始终使用与您正在使用的框架相对应的那一个。