我的应用使用 Dropbox 允许用户备份他们的核心数据存储。有没有办法以编程方式确定 Dropbox 应用是否已安装,以便提示用户设置备份?我不想打扰不使用 Dropbox 的用户,但我想尝试让尽可能多的用户使用备份。
问问题
1182 次
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 回答