2013-02-26 91 views
2

我的應用程序使用Dropbox允許用戶對其核心數據存儲進行備份。有沒有一種方法可以以編程方式確定Dropbox應用程序是否已安裝,因此我可以提示用戶設置備份?我不想要那些不使用Dropbox的用戶,但我想盡可能讓更多的用戶使用備份。如何確定Dropbox是否已安裝在iOS設備上?

+1

您需要檢查您是否可以訪問其URL方案。 請參閱 - http://stackoverflow.com/questions/9406546/does-dropbox-app-on-ios-has-a-url-scheme – Sean 2013-02-26 17:51:18

回答

7

Dropbox的定義自己的URI方案,dbapi-1,正因爲如此,你可以看到,如果操作系統可以打開使用該方案的網址,像這樣:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"dbapi-1://"]]) { 
    NSLog(@"Dropbox is installed."); 
} else { 
    NSLog(@"Dropbox is not installed."); 
} 
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,則應始終使用與您正在使用的框架相對應的那一個。

相關問題