我的应用使用Dropbox允许用户备份其核心数据存储。有没有办法以编程方式确定Dropbox应用程序是否已安装,所以我可以提示用户设置备份?我不想让那些不使用Dropbox的用户感到烦恼,但我想尝试让尽可能多的用户使用备份。
答案 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.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,则应始终使用与您正在使用的框架相对应的那个。