首页 文章

swift - 创建的Twitter登录按钮没有完成块?

提问于
浏览
0

我实现了一个TWTRLoginButton,但由于某种原因,完成块没有注册/被调用,我不知道为什么这是....

Login button initialization:

self.twitterLoginView = TWTRLogInButton(logInCompletion: { session, error in
        if (session != nil) {
            print("signed in as \(session.userName)");
        } else {
            print("error: \(error.localizedDescription)");
        }
    })

Error, when clicking buton:

TWTRLogInButton创建时没有设置completionBlock

2 回答

  • -1

    你需要让TwitterKit在从twitter重定向时重新打开应用程序:

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        let twtrHandled = TWTRTwitter.sharedInstance().application(app, open: url, options: options)
        return twtrHandled
    }
    
  • 0

    在Code或Story板中选择一个UIButton,然后按下按钮操作以下方法 .

    -(IBAction)twitterLogin:(id)sender
    {
    
        [[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error){
            if (session)
            {
                 [[Twitter sharedInstance]ini]
                 [[[Twitter sharedInstance] APIClient] loadUserWithID:[session userID]
                                                           completion:^(TWTRUser *user,
                                                                        NSError *error)
                  {
                      // handle the response or error
                      if (![error isEqual:nil]) {
    
                          NSLog(@"Twitter info   -> user = %@ ",user.description);
                          {
                              NSMutableDictionary *dict =[[NSMutableDictionary alloc]init];
                              [dict setValue:user.userID forKey:@"id"];
                              [dict setValue:user.name forKey:@"name"];
                              [dict setValue:user.screenName forKey:@"screenName"];
                              NSLog(@"User Description is %@",dict);
                          }
    
                      } else {
                      }
                  }];
    
             } else {
                 NSLog(@"error: %@", [error localizedDescription]);
             }
         }];
    
    }
    

相关问题