选择器'application:openURL:options:sourceApplication:annotation'没有已知的类方法

Posted

技术标签:

【中文标题】选择器\'application:openURL:options:sourceApplication:annotation\'没有已知的类方法【英文标题】:No known class method for selector 'application:openURL:options:sourceApplication:annotation'选择器'application:openURL:options:sourceApplication:annotation'没有已知的类方法 【发布时间】:2020-12-15 13:39:00 【问题描述】:

我正在将 Fitbit 集成到我的 react-native 应用程序中,我应该将一段代码添加到我的 AppDelegate.m:

#import "RCTLinkingManager.h"


@implementation AppDelegate

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

但我已经有了处理 FB 登录和 firebase 链接的设置,也许还有其他东西:

- (BOOL)application:(UIApplication *)app
    openURL:(NSURL *)url
    options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options 
   if ([[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options]) 
      return YES;
    

    if ([RCTLinkingManager application:app openURL:url options:options]) 
      return YES;
    

    return NO;

当我试图将它们组合在一起时:

 - (BOOL)application:(UIApplication *)app
       openURL:(NSURL *)url
       options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
       sourceApplication:(NSString *)sourceApplication
        annotation:(id)annotation
    if ([[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options ]) 
       return YES;
     

     if ([RCTLinkingManager application:app
           openURL:URL
           options:options
           sourceApplication:(NSString *)sourceApplication
           annotation:(id)annotation ]) 
       return YES;
     

     return NO;
 

我收到错误消息:No known class method for selector 'application:openURL:options:sourceApplication:annotation'

这是否意味着sourceApplicationannotation 已经包含在options 中?

欢迎任何帮助

【问题讨论】:

【参考方案1】:

您应该以不同的方式调用FBSDKApplicationDelegate

    if ([[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]) 
        return YES;
    

【讨论】:

我需要用LinkingManager更改部分,而不是FBSDKApplicationDelegate 您的通话中有错字,您输入的是URL,但应该是url 是的,这是一个错字,FBSDKApplicationDelegate 工作得很好

以上是关于选择器'application:openURL:options:sourceApplication:annotation'没有已知的类方法的主要内容,如果未能解决你的问题,请参考以下文章

URL Scheme 不触发 application:openURL:options

iOS9 application:application openURL: sourceApplication: annotation: 方法不执行

application:openURL:sourceApplication:annotation: 有 MainWindow.xib 时不调用

Application.OpenURL 打开邮件不生效

Application.OpenURL 打开邮件不生效

Application.OpenURL 打开邮件不生效