我正在努力使用普遍存在的回调和自定义方案->intent_filter 技术来获得 OAuth 授权的特定行为。
我的应用程序注册 SEND 操作,并在调用时启动一项服务,该服务依次检查用户是否已获得授权,如果没有,则生成一个活动 (OAuthActivity) 来请求登录。
请记住,在此发生之前的前台活动可能是任何内容。然后该活动启动一个 VIEW 意图以在浏览器中打开身份验证页面;后者调用精心设计的回调(使用清单中定义的自定义方案)并唤醒 OAuthActivity。
目前,OAuthActivity 有,launchMode="singleTask"
但这从堆栈的角度来看没有什么区别(当回调时它会到达顶部)。
有没有一种方法可以清除活动堆栈并返回用户正在执行的操作,而不是强迫他“返回”浏览器活动? (当内容在后台成功提交时,我会显示通知)
有人有任何指点吗?感谢您的阅读
然后该活动启动 VIEW 意图以在浏览器中打开身份验证页面
那就是问题所在。这对我有用:在您控制的 Web 视图中渲染 oauth 网页,而不是启动到浏览器应用程序。
oauth 网页在调用其回调时,实际上会在 web 视图中替换自身,您的 WebViewClient 可以在其中捕获预期的 URL、处理结果并完成 () web 视图(将其从活动堆栈中删除)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)