admin管理员组文章数量:1558064
前言
不知道什么时候开始, QQ oauth登陆, 不再让你在网页输入账号密码了. 页面提示正在拉起QQ手机版. 然后程序就在这里没有然后了.
可能有人会问, 为什么不使用QQ sdk做登陆. 这里提2点:
Android, iOS, Web 3端需要打通, 才能确保一个QQ用户唯一.
平台sdk, 封装了QQ登陆, 对外多个应用提供. 比如常见的游戏sdk.
搜索了下这个sdk就无法QQ登陆了, 应该是QQ web页面不让输入账号密码之后出现的.
QQ只有一键登录,无法输入账号密码
解决问题
首先在webview的shouldOverrideUrlLoading(WebView view, String url)方法里打印下url. 会发现输出
wtloginmqq://ptlogin/qlogin?p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
这是个非http开头的地址, 内嵌的webview无法识别. 可以联想到QQ应该是走了定制的uri协议来跳转手机QQ. 我们可以通过intent来让系统帮我们跳转到QQ.
if (url.startsWith("wtloginmqq://ptlogin/qlogin")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
}
加了上述代码, 就能启动QQ并登陆了. 登陆完了, 还会提示跳转到浏览器. 但是这样有个问题, 我们应用拿不到oauth要用到的code了.
既然QQ会登陆完毕会跳转浏览器, 那就让我们应用也能接收url跳转.
android:name=".ui.activity.QQActivity"
版权声明:本文标题:android h5 qq登录,Android webview一键登录手机QQ(2018.11) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727385156a1112308.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论