2

我的应用使用 Dropbox 允许用户备份他们的核心数据存储。有没有办法以编程方式确定 Dropbox 应用是否已安装,以便提示用户设置备份?我不想打扰不使用 Dropbox 的用户,但我想尝试让尽可能多的用户使用备份。

4

2 回答 2

7

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

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"dbapi-1://"]]) {
    NSLog(@"Dropbox is installed.");
} else {
    NSLog(@"Dropbox is not installed.");
}
于 2013-02-26T17:51:36.357 回答
0

当前接受的答案不合适。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,则应始终使用与您正在使用的框架对应的那个。

于 2015-03-02T08:16:23.760 回答