4

在我的应用中,我已经集成了 Dropbox Sync SDK。因此,当适用于 iOS 的 Dropbox 选择器 SDK 出现时,我会尝试一下。

我的问题是,当我在我的实际设备上测试时,它说

“无法生成链接。抱歉,出现错误。请稍后再试。”

// 注意:他们说“您可能有一个需要多个应用程序密钥的项目,因为它还使用核心或同步 API。在这种情况下,您需要使用正确的应用程序密钥显式初始化您自己的选择器实例使用 -initWithAppKey: 方法。”

更新: 因为我已经为 Sync API 提供了相同的 URL 方案,所以我所做的是在我的AppDelegate-initWithAppkey:中使用两种方法初始化另一个选择器实例application:openURL:sourceApplication:annotation:

-(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
       }
    }];
}
4

1 回答 1

2

确保您使用正确的应用程序密钥执行请求。不是您用于同步器的那个,而是一个新的 Drop-in 应用程序,它有自己的应用程序密钥。

如果您这样做了,请尝试管理您自己的DBChooser. 现在,您获取一个实例并init在其上调用 - 方法。您应该管理通过您的应用程序共享的您自己的单例实例。您应该使用[[DBChooser alloc] initWithAppKey:@"my-dropbox-key"]. 切勿在您的情况下使用 defaultChooser 。

于 2013-08-06T08:25:07.467 回答