简体   繁体   English

如何在AppDelegate.m中的openURL中提供多个源?

[英]How to multiple source in openURL in AppDelegate.m?

I'm trying to handle both of Twitter and deep link in openURL, using ReactNative. 我正在尝试使用ReactNative处理Twitter和openURL中的深层链接。 The code below does not work, ending up go into if (LinkingHandled) even when handling Twitter. 下面的代码不起作用,即使处理Twitter,最终也会进入if (LinkingHandled)

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
  bool TwitterHandled = [[Twitter sharedInstance] application:application openURL:url options:options];
  bool LinkingHandled =[RCTLinkingManager application:application openURL:url options:options];
  if (TwitterHandled) {
    return TwitterHandled;
  }
  if (LinkingHandled) {
    return LinkingHandled;
  }
  return NO;
}

What is wrong with this? 这有什么问题? I'm new to ObjC. 我是ObjC的新手。

Use } else if { so only Twitter goes if it gets handled, and 'linking' will only go if TwitterHandled is NO and LinkingHandled is YES. } else if {使用} else if {使用} else if {只有处理Twitter时Twitter才会运行,只有TwitterHandledNOLinkingHandled为YES时,“ linking”才会LinkingHandled

This can be simplified into one expression: 这可以简化为一个表达式:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    return [Twitter.sharedInstance
            application:application
                openURL:url options:options] || 
           [RCTLinkingManager
            application:application 
                openURL:url
                options:options];
}

Switch to Swift if you can. 如果可以,请切换到Swift。 🙂 🙂

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM