swift - 创建没有完成块的 Twitter 登录按钮?
Posted
技术标签:
【中文标题】swift - 创建没有完成块的 Twitter 登录按钮?【英文标题】:swift - Twitter login button created with no completion block? 【发布时间】:2015-08-12 00:38:14 【问题描述】:我正在实现一个 TWTRLoginButton,但由于某种原因,完成块没有注册/被调用,我不知道为什么会这样......
登录按钮初始化:
self.twitterLoginView = TWTRLogInButton(logInCompletion: session, error in
if (session != nil)
print("signed in as \(session.userName)");
else
print("error: \(error.localizedDescription)");
)
点击按钮时出错:
TWTRLogInButton 是在没有设置完成块的情况下创建的
【问题讨论】:
【参考方案1】:当应用从 twitter 重定向回来时,您需要让 TwitterKit 处理重新打开应用:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
let twtrHandled = TWTRTwitter.sharedInstance().application(app, open: url, options: options)
return twtrHandled
【讨论】:
【参考方案2】:在代码或故事板中取一个 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]);
];
【讨论】:
以上是关于swift - 创建没有完成块的 Twitter 登录按钮?的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Twitter oAuth 回调不适用于 Swift ios13
TabBar 图标对选择的反弹效果就像 Swift 中的 Twitter 应用程序
Swift:如何在动态 UITableView 的自定义单元格中获取滑块的值?
Twitter个人资料页面iOS Swift剖析(UIScrollView中的多个UITableViews)