Webview如何触发onReceivedLoginRequest;Webview实现自动登录

Webview触发onReceivedLoginRequest

这个知识点,我搜索了很多资料,都没确切的提到。以小米手机为例,分析下他的应用原理
1、自己写一个app集成Webview,同时需要打开Android的调试模式,调试方式如下:
Chrome调试android设备
2、WebView启动链接https://www.mi.com/
会看到如下页面:
在这里插入图片描述
3、触发小米商城登录
在这里插入图片描述
4、使用chrome监听登录页的请求
在这里插入图片描述
5、查看serviceLogin的请求详情
在这里插入图片描述
6、展开Response Headers,翻页到最下方,你会看到一个很关键的header

x-auto-login: realm=com.xiaomi&args=https%3A%2F%2Faccount.xiaomi.com%2Fpass%2FserviceLogin%3Fsid%3Dmi_eshopm_go%26callback%3Dhttps%253A%252F%252Fm.mi.com%252Fv1%252Fauthorize%252Fsso_callback%253Ffollowup%253Dhttps%25253A%25252F%25252Fm.mi.com%25252Fuser%2526sign%253DZWJiMDc5YWVjOTNkNGE5YzM4Mjc2Y2I1MGYxMmE0YmY4MmRkMDY1Ng%252C%252C%26bal%3Dtrue

7、到这里我们就可以总结如何触发的了
小米账号登录页下发的header里有x-auto-login的字段,这个字段的值其实是一个url加帐号类型。
Android的WebviewClient检测到这个header时,会自动调用 onReceivedLoginRequest。

Native处理

1、Webview回到到onReceivedLoginRequest接口,需要在接口内调用app内的账号检验机制。
2、检验成功,Natvie接口返回一个包含了认证信息的新的Url。
3、onReceivedLoginRequest接口内调用加了登录认证的新Url,mWebView.loadUrl(url);到此,webview自动登录完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值