Ios 在appDelegate中调用open Url

Ios 在appDelegate中调用open Url,ios,xcode,Ios,Xcode,我的应用程序代理中有以下代码: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { // attempt to extract a token from the url self.openedURL = url; // attempt to e

我的应用程序代理中有以下代码:

- (BOOL)application:(UIApplication *)application
     openURL:(NSURL *)url
 sourceApplication:(NSString *)sourceApplication
  annotation:(id)annotation {
// attempt to extract a token from the url
self.openedURL = url;
// attempt to extract a token from the url
 return [FBSession.activeSession handleOpenURL:url];       
 }
如何从UIViewController调用它

编辑:

…然后,视图控制器具有以下功能:

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
return [FBSession openActiveSessionWithReadPermissions:nil
                                          allowLoginUI:allowLoginUI
                                     completionHandler:^(FBSession *session,
                                                         FBSessionState state,
                                                         NSError *error) {
                                         [self sessionStateChanged:session
                                                             state:state
                                                             error:error];
                                     }];
 }

你没有。当您在应用程序的plist中注册URL语法时,操作系统会调用此函数

然后可以使用此方法处理请求

i、 如果你有一个wordsearch应用程序,那么你可以使用它,这样用户就可以通过电子邮件中的链接打开wordsearch,比如

wordsearch://thisisthecontetnofthewordsearchhfsadkljfhasdkfjahsdkfjhaskljasdhflkjahsgdflkjadhslfkj

然后您将使用此函数解析字符串,并将其转换为实际的wordsearch谜题(或类似的东西)

您实际上想从UIViewController执行什么操作?

您有两个选项:

  • 实例化时或以其他方式将
    NSURL
    传递到
    UIViewController

  • 从您的
    UIViewController
    ,获取对应用程序委托的引用,并使用
    openedURL
    属性

  • 选项2的代码

    MyViewController *controller = [[UIApplication sharedApplication] delegate];
    controller.openedURL;
    

    最初,委托的调用方式如下:AppDelegate*AppDelegate=[[UIApplication sharedApplication]delegate]。。。如果我使用选项2,我是否需要在代理或视图控制器中添加该代码?但实际何时调用打开的url?当我按下一个按钮时,我正在尝试使用Facebook实例化登录,我需要一个url。上面的代码提供了url,并且在应用程序委托中,但我无法从UIViewContorlerah调用该方法,您使用的是哪个版本的Facebook API?你可以发布一些你正在尝试运行的代码吗。对于Facebook,您不必运行此代码。你应该设置一个Facebook代表。当登录返回时,它将在Facebook委托中运行一个特定的方法。看起来你正在运行一个相当旧版本的Facebook API?我建议在这里使用CocoaPods Facebook API。。。还有,你用Facebook做什么?你只是在Facebook上发帖,还是想做更多的事情?看这个:……这就是我想做的。发送请求
    MyViewController *controller = [[UIApplication sharedApplication] delegate];
    controller.openedURL;