Android Authorization completed
2020-06-22 本文已影响0人
钢镚koala
android twitter登录,很久之前写的实现方式。一直没改过。今日测试,发现一个问题。当用户打开授权页但是取消返回的时候,再次点击twitter登录按钮,会报授权失败错误。
查找一番后,发现是twitter 登录内部缓存问题导致。当用户取消后,内部的加载进度返回true,标识完成了。但是外部对于开发者和用户,并不知道,再次点击的时候,这个数值没有被清除,也就意味授权未结束。因此,需要我们手动帮助结束授权。
首先在点击按钮的时候,创建新的授权client
//如果之前有值,那需要先取消授权行为
mTwitterAuthClient?.cancelAuthorize()
mTwitterAuthClient = TwitterAuthClient()
在onActivityResult方法中,回调下面方法
if (requestCode == TwitterAuthConfig.DEFAULT_AUTH_REQUEST_CODE) {
mTwitterAuthClient?.handleTwitterActivityResult(requestCode, resultCode, data)
}
对于twitterLoginButton的callback,如果在failure()方法中有处理,最好还是区分一下用户取消行为。(activity.result_canceled == resultCode)