我正在努力使用自定义scheme-> intent_filter技术的无处不在的回调来获得OAuth授权的特定行为.
我的应用程序注册了SEND操作,并在调用时启动一项服务,该服务反过来检查用户是否已获得授权,如果没有,则生成一个活动(OAuthActivity)以请求登录.
请记住,在此之前发生的前景活动可能是任何事情.然后,活动启动VIEW意图,在浏览器中打开auth页面; 后者调用精心设计的回调(使用manifest中定义的自定义方案)并唤醒OAuthActivity.
OAuthActivity目前有,launchMode="singleTask"但这与堆栈视角没有区别(它在回调时会显示在顶部).
有没有办法可以清除活动堆栈并回到用户正在做的事情,而不是强迫他"推回"浏览器活动?(然后我会在后台成功提交内容时显示通知)
有没有人有任何指针?感谢您的阅读
然后该活动启动 VIEW 意图以在浏览器中打开身份验证页面
那就是问题所在。这对我有用:在您控制的 Web 视图中渲染 oauth 网页,而不是启动到浏览器应用程序。
oauth 网页在调用其回调时,实际上会在 webview 中替换自身,您的 WebViewClient 可以在其中捕获预期的 URL、处理结果并完成 webview(将其从活动堆栈中删除)。
| 归档时间: |
|
| 查看次数: |
1279 次 |
| 最近记录: |