浏览器回调和 Android Activity 堆栈疯狂

2024-06-25

我正在努力使用普遍存在的回调和自定义方案->intent_filter 技术来获得 OAuth 授权的特定行为。

我的应用程序注册 SEND 操作,并在调用时启动一项服务,该服务依次检查用户是否已获得授权,如果没有,则生成一个活动 (OAuthActivity) 来请求登录。

请记住,在此发生之前的前台活动可能是任何内容。然后该活动启动一个 VIEW 意图以在浏览器中打开身份验证页面;后者调用精心设计的回调(使用清单中定义的自定义方案)并唤醒 OAuthActivity。

目前,OAuthActivity 有,launchMode="singleTask"但这从堆栈的角度来看没有什么区别(当回调时它会到达顶部)。

有没有一种方法可以清除活动堆栈并返回用户正在执行的操作,而不是强迫他“返回”浏览器活动? (当内容在后台成功提交时,我会显示通知)

有人有任何指点吗?感谢您的阅读


然后该活动启动 VIEW 意图以在浏览器中打开身份验证页面

那就是问题所在。这对我有用:在您控制的 Web 视图中渲染 oauth 网页,而不是启动到浏览器应用程序。

oauth 网页在调用其回调时,实际上会在 web 视图中替换自身,您的 WebViewClient 可以在其中捕获预期的 URL、处理结果并完成 () web 视图(将其从活动堆栈中删除)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浏览器回调和 Android Activity 堆栈疯狂 的相关文章

随机推荐