4

私のアプリでは、Dropbox Sync SDK を既に統合しています。だから、iOS 用の Dropbox Chooser SDK が出てきたら、試してみます。

私の質問は、実際のデバイスでテストしたところ、

「リンクを生成できません。申し訳ありませんが、エラーが発生しました。後でもう一度お試しください。」

// 注: 彼らは、「Core または Sync API も使用するため、複数のアプリ キーを必要とするプロジェクトがある可能性があります。この場合、適切なアプリ キーを使用して、セレクターの独自のインスタンスを明示的に初期化する必要があります。 -initWithAppKey: メソッドを使用します。」

更新: 私は既に Sync API 用の同じ URL スキームを持っているので、私がしたことは-initWithAppkey:、両方のメソッドで Chooser の別のインスタンスを初期化することでした -application:openURL:sourceApplication:annotation:私のAppDelegateで

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

...そして私の一番上のView Controller。

- (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

正しいアプリキーを使用してリクエストを行っていることを確認してください。Syncer に使用するものではなく、独自のアプリ キーを持つ新しいドロップイン アプリです。

それを行った場合は、 の独自のインスタンスを管理してみてくださいDBChooserinit次に、インスタンスを取得して、その上で -methodを呼び出します。アプリを通じて共有する独自のシングルトン インスタンスを管理する必要があります。でそのインスタンスを作成する必要があります[[DBChooser alloc] initWithAppKey:@"my-dropbox-key"]。あなたの場合、defaultChooserを決して使用しないでください。

于 2013-08-06T08:25:07.467 に答える