当我使用Android的WebView
时,有通过JS接口
调用和JS注入
调用来实现Web应用程序与本地应用程序之间通信的方法。我想知道是否有任何方法可以通过任何方式在Android本机应用程序和Chrome自定义选项卡(CCT)
之间进行通信?
我知道出于安全原因,Google没有在CCT
和TWA
中添加桥接功能。但是在Google I/O上,他们宣布有限的Web/Native bridging
方法(请参见下图)。我想知道有哪些方法以及在哪里可以找到有关这些有限桥接的指南?
更新1
<activity android:name=".activities.MyResultActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="abc"
android:host="abc.oauth.com" />
</intent-filter>
</activity>
当我在浏览器中调用
abc://abc.oauth.com
时,它不会打开我的活动。它会打开谷歌搜索。
更新2
最终,我成功地使用以下代码获取了查询参数的键/值:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(classTag, "MyResultActivity activity is called")
intent?.data?.let {
for (key in it.queryParameterNames) {
val value = it.getQueryParameter(key)
Log.d(classTag, "MyResultActivity param key: $key, value: $value")
}
}
}
非常感谢@Rahul对我提供的指导。
AndroidManifest.xml
文件中注册auth回调。 - Rahul Khurana