2016-08-15 7 views
0

私は自分の製品用にSDKを構築していますが、アプリケーションデリゲートクラスはありません。私はSDKにDropbox Integrationを使用していましたので、次のメソッドを使用するようにバインドされています。handleOpenURLを他のアプリケーションデリゲートを追加または使用することはできますか

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    NSString *stringUrl = [url absoluteString]; 
    if ([stringUrl containsString:@"cancel"]) { 

     // Handle if user cancelled the login 
     [[NSNotificationCenter defaultCenter] postNotificationName:@"dropboxRegistrationCancel" object:self]; 
     return NO; 
    } 

    if ([[DBSession sharedSession] handleOpenURL:url]) { 
     if ([[DBSession sharedSession] isLinked]) { 
      NSLog(@"App linked successfully!"); 
      // At this point you can start making API calls 
      [[NSNotificationCenter defaultCenter] postNotificationName:ApplicationComeBackFromDropBoxLoginPage object:self]; 
     } 
     return YES; 
    } 
    // Add whatever other url handling code your app requires here 
    return NO; 
} 

ですから、上記の方法をどのように使用できるのですか? これを別のクラスで使用する別の解決策(UIResponderクラスを継承するなど) ヘルプを探しています。

答えて

0

appDelegateを使用せずにSDKを構築する場合は、何もしません。あなたのプロジェクトでは、この行を追加する必要があるsdkを使用します。あなたは後でstringUrlを使用していないので、 ところで、ラインNSString *stringUrl = [url absoluteString];はabsolutly無用である、と

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
// NSString *stringUrl = [url absoluteString]; 
return YES; 
} 

だけ意味:ユーザーがリンクをクリックしたときそう、あなたが他のアプリを開くために私のアプリを終了することができます。 いいえいいえ....

+0

ありがとうフロリアン、私が表示された方法を完了する私の更新された質問を親切に参照してください。私は、ユーザーがキャンセルボタンをクリックするか、ログインに成功したかのどちらかで、この方法を差別化に使用しています。 – Aleem

+0

さらに、これはappの代わりにSDKの一部です。ユーザーはdropboxからファイルを選択することができます – Aleem

+0

「あなたのSDKを使用するプロジェクトになります」と言いましたので、このSDKを追加したいと思いますSDKのドキュメントで言及することができますが、まずこれがSDK内で処理できる場合は、これを解決したいと考えています。 この方法に言及せずに自分の仕事を達成することはできますか? – Aleem

関連する問題