2016-08-14 1 views
4

私はこのスニペットを必要AppDelegate.m FBSDKとLinkingManagerの両方のための

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 

    BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application 
    openURL:url 
    sourceApplication:sourceApplication 
    annotation:annotation 
    ]; 
    // Add any custom logic here. 
    return handled; 
} 

LinkingManagerを使用するには、私は、彼らは明らかに重複している

#import "RCTLinkingManager.h" 

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
    return [RCTLinkingManager application:application openURL:url 
         sourceApplication:sourceApplication annotation:annotation]; 
} 

アプリデリゲートにこのスニペットを必要とします。両方のライブラリを連携させるにはどうすればよいのですか? 私はどんなObjective-Cでも分かりません

+0

sourceApplicationパラメータ – washloops

答えて

5

もちろん、このメソッドはAppDelegateで1回しか実装できません。

[[FBSDKApplicationDelegate...および[RCTLinkingManager...は両方ともBOOLを返します。

両方のスニペットを同じ方法で配置することができます。もし[RCTLinkingManager...[[FBSDKApplicationDelegate...の両方が返信された場合はYESを返すことをお勧めします。YES。それ以外の場合はNOを返します。

それは次のようになります。私はこれで働いたことがないので、

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { 

    BOOL handledFB = [[FBSDKApplicationDelegate sharedInstance] application:application 
    openURL:url 
    sourceApplication:sourceApplication 
    annotation:annotation 
    ]; 

    BOOL handledRCT = [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 

    return handledFB || handledRCT; 
} 

私は、あなたが同じアプリでFBSDKApplicationDelegateRCTLinkingManagerを使用できることを、保証することはできません。しかし、あなたのコードは少なくともコンパイルする必要があります。

+1

をチェックすることで、さまざまなことを返すことができます。同じ問題が発生しましたが、これはまだReact 16とReact Native 0.49.3で動作しています。 –

+0

これは完全に機能しました。 –

関連する問題