javascript - 如何在chrome自定义选项卡中使用js bridge

标签 javascript android kotlin web-applications webview

Android webView 不支持 Google oAuth。 Google 建议使用 chrome 自定义标签进行 oAuth。我也有从我的网络应用程序到 native 的 js 调用的要求。如何配置为使用 Android 中的 Chrome 自定义选项卡从 Web 应用程序调用 native 方法,类似于 webView 中的 js 界面?

更新 1

这个模组 Chang将帖子标记为重复但帖子不同。我不想在我的网络应用程序中从 native 运行任何 JS。我想通过 JS 接口(interface)从 Web 应用程序调用方法到我的 native 代码。 CCT有什么办法吗?

最佳答案

基于 Can I Inject Javascript Code into Chrome Custom Tabs答案似乎是

Chrome Custom Tab 基于 Chrome 本身,具有相同的安全模型。 Web 内容仅允许访问 Web API(摄像头、设备方向等),无法访问 native 应用程序。 native 应用最多只能捕获 URI。

即使是 Chrome Custom Tab documentation说明 native 应用程序处理内容的方式:

Some URLs can be handled by native applications. If the user has the Twitter app installed and clicks on a link to a tweet. She expects that the Twitter application will handle it.

Before opening an url from your application, check if a native alternative is available and use it.

表示 native 应用程序处理或不处理 URL。我对 Chrome 自定义选项卡的解释是与 native 应用程序相邻的可换肤 Chrome 组件,而不是像存在 Javascript 桥的 WebView 这样的 native 应用程序内部。

您希望从 Web 应用程序中使用 Javascript 桥接,这意味着任何网站代码都可以通过任意方式在 Web 容器之外进行交互。第一个链接中的回复给出了为什么不允许这样做的理由。

关于javascript - 如何在chrome自定义选项卡中使用js bridge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56961932/

相关文章:

javascript - 如何从当前状态向前或向后旋转元素

javascript - 为什么++[[]][+[]]+[+[]] 返回字符串 "10"?

Android:从 GregorianCalendar 对象获取年、月、日

javascript - Meteor-AutoForm:如何根据另一个控件更新选择选项

javascript - 如何查找字符串中两个字符之间的多个值 - JS

android - 使用表格行动态填充表格布局

android - 如何在Android中访问DIalog的正负按钮

android - 在动画结束后设置 View GONE 的可见性

performance - 可靠地测量 JVM 分配

Android构建gradle文件版本号自动递增