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

时间:2013-02-26 17:49:11

标签: ios objective-c dropbox

我的应用使用Dropbox允许用户备份其核心数据存储。有没有办法以编程方式确定Dropbox应用程序是否已安装,所以我可以提示用户设置备份?我不想让那些不使用Dropbox的用户感到烦恼,但我想尝试让尽可能多的用户使用备份。

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

目前接受的答案不合适。 dbapi-1可能并不总是有效。这取决于你是否使用SDK(你应该使用)。

如果您阅读DBChooser.mhttps://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,则应始终使用与您正在使用的框架相对应的那个。