是否可以使用 Android App Links,https://
例如:https://my-app.com/callback
在 OAuth2 流程结束时从 Android WebView 重定向回我的应用程序?我知道正常的深层链接是如何工作的,例如com.my-app://
或my-app://
可用于重定向回我的应用程序。据我了解,WebView 不知道如何处理此类协议,将请求传递给操作系统,如果在AndroidManifest.xml
.
这可以通过https://
方案来完成,还是重定向将始终被 WebView 捕获,并且无法重定向回我的应用程序?
要指定我想通过步骤实现的目标:
- 提供了一个 IntentFilter
AndroidManifest.xml
来处理应用程序链接,例如:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="my-app.com/callback" />
<data android:scheme="https" />
</intent-filter>
- 提供了一个有效
assetlinks.json
的https://my-app.com/.well-known/assetlinks.json
(此时,IntentFilterIntent
日志显示 JSON 的验证成功,我可以使用类似的命令从终端打开应用程序npx uri-scheme open https://my-app.com/callback
) - 我的应用程序通过使用以下网址启动 OAuth2 流程
CustomTabsIntent.launchUrl
:
https://accounts.google.com/o/oauth2/v2/auth?
scope=email%20profile&
response_type=code&
state=state&
redirect_uri=https://my-app.com/callback&
client_id=client_id
在这些步骤之后,我希望我的应用程序在成功登录后打开,因为它是 url 的有效处理程序并且不希望卡在浏览器中。这是否可能,或者请求永远不会从浏览器转发到操作系统,因为浏览器是该https://
方案的有效处理程序?
如果以上是不可能的,有没有办法从 WebView 导航回应用程序,提供auth_code
或唯一的方法是使用自定义方案?