在我的应用中,我已经集成了Dropbox Sync SDK.因此,当适用于iOS的Dropbox Chooser SDK进来时,我试一试.
我的问题是,当我在我的实际设备上测试时,它说
“Unable to Generate Link. Sorry, an error occurred. Please try again later.”
//注意:他们说“您可能有一个项目需要多个应用程序密钥,因为它也使用Core或Sync API.在这种情况下,您需要使用正确的应用程序密钥显式初始化您自己的Chooser实例.使用-initWithAppKey:方法.“
更新:
因为我已经为Sync API提供了相同的URL方案,所以我所做的是在-application:openURL:sourceApplication:annotation:in AppDelegate中使用-initWithAppkey:方法初始化另一个Chooser实例
-(BOOL) application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
// instantiate a new DBChooser instance with Chooser Key
// .. make sure it should not include 'db-' prefix
DBChooser *chooser = [[DBChooser alloc] initWithAppKey:@"my-chooser-key"];
if ([chooser handleOpenURL:url]) {
// This was a Chooser response and handleOpenURL automatically ran the
// completion block
return YES;
}
return NO;
}
……和我最顶级的视图控制器.
- (void)didPressChoose
{
// .. make sure it should not include 'db-' prefix
DBChooser *chooser = [[DBChooser alloc] initWithAppKey:@"my-dropbox-key"];
[chooser openChooserForLinkType:DBChooserLinkTypeDirect
fromViewController:self
completion:^(NSArray *results)
{
if ([results count]) {
// Process results from Chooser
_result = results[0];
NSLog(@"%@", _result.link);
} else {
// User canceled the action
}
}];
}
最佳答案 确保使用正确的app-key执行请求.不是您用于syncer的那个,而是具有自己的app键的新Drop-in应用程序.
如果您这样做,请尝试管理自己的DBChooser实例.现在,您获取一个实例并在其上调用init方法.您应该管理自己通过app分享的单例实例.您应该使用[[DBChooser alloc] initWithAppKey:@“my-dropbox-key”]创建该实例.永远不要在你的情况下使用defaultChooser.