问题标签 [android-customtabs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
459 浏览

android - Firefox 不适用于自定义标签 Android

我的应用程序通过 CustomTabs 从应用程序打开特定 url。

Url 是具有自签名证书的本地服务器,因此当我使用 Firefox 打开 url 时,它会显示带有选项“访问站点”和“添加永久异常”的“不受信任的连接”,但是这两个按钮都不适用于 Firefox(即不重定向到网站也不添加例外)。附上截图。应用程序的屏幕截图

它适用于 Chrome、Opera、UC 和其他默认浏览器。

0 投票
1 回答
423 浏览

android - Android - 通过 CustomTabs 意图使用 EXTRA_HEADERS 的捆绑包内的参数在 Play 商店中更新应用程序后不会被 Google Chrome 接收/读取

Google Chrome 在 Play 商店中升级到 83.0.4103.106 版本(https://chromereleases.googleblog.com/2020/06/stable-channel-update-for-desktop_15.html)。在那里,谷歌团队做了一些强制措施来避免 JS 注入。我的 android 应用程序使用 CustomTabs 打开一些 URL,我使用 BundleBrowser.EXTRA_HEADERS将一个键值对添加到标头请求中,此标头是正确打开 URL 所必需的。捆绑包被添加到customTabsIntent.intent. 在 83 之前的版本中,该应用程序按预期工作,但现在,通过该升级,Google Chrome 似乎没有收到我添加的标头参数,因此 url 无法正确加载。关于我应该在应用程序中更改什么或者这可能是 Google Chrome 问题的任何想法?

注意:适用于 Google Chrome 的 83.0.4103.106 版本于 2020 年 6 月 15 日发布。

编辑:谷歌团队已经回答了他们为什么删除它:

在此处查看完整答案

这是安全修复的结果 [1] - 基本上,由于我们不知道启动 CCT 的应用程序是由与网站相同的开发人员制作的,因此从技术上讲,它被视为跨源。因此,我们将可以通过 Browser.EXTRA_HEADERS 设置的标头限制为 CORS 安全列表中的标头...

0 投票
1 回答
196 浏览

android - Xamarin Forms:Android CustomTabs 在应用程序后台关闭时关闭

TL;DR:当应用程序在后台运行时,CustomTabs 关闭,但我们需要它保持活动状态。我们怎样才能做到这一点?

我们有一个使用 CustomTabs 登录用户的应用程序。我们添加了双因素身份验证,但这会带来一个问题。当您点击登录按钮时,自定义选项卡意图将按如下方式启动:

这可以按预期工作并且您可以登录,当然现在询问两因素身份验证代码的代码,这在大多数情况下意味着您必须后台应用程序,打开您的身份验证器(authy,谷歌身份验证器等)然后回来到带有代码的应用程序。问题是当我们重新打开应用程序时,CustomTabs 和它的会话完全消失了。这意味着您必须再次单击它,再次登录,一切都会发生同样的事情。我已经寻找了几天的解决方案。任何人都可以帮助我们找到一种方法来保持 CustomTabs 和它的会话打开,这样您就可以填写您的身份验证器代码并从此愉快地登录?

0 投票
1 回答
612 浏览

android - 如何让我的 Android 应用程序始终在 Chrome 或其他支持 TWA 的浏览器中打开?

我有一个从https://appmaker.xyz/pwa-to-apk/生成的非常基本的 Android 应用程序。该应用程序实际上非常接近谷歌发布的一个示例,我再也找不到了。

问题是,如果您将设备上的默认浏览器设置为不支持 TWA 的浏览器,应用程序会打开但会显示 URL 栏。如果你想要所有的技术乐趣,这里有一个解释一切的错误报告:https ://bugs.chromium.org/p/chromium/issues/detail?id=942930

我的 Android 开发技能仅限于在 Android Studio 中编译应用程序,我不知道我可以进行哪些修改来强制我的应用程序更喜欢支持 TWA 的浏览器。我可以对此进行一些修改吗?

这是我的 AndroidManifest.xml:

0 投票
0 回答
139 浏览

android - 当浏览器在后台时,如何从隐式意图启动活动?

我有一个应用程序在 Chrome 自定义选项卡中启动身份验证,并使用活动上的意图过滤器通过隐式意图将结果传递回我的应用程序。只要在 Web 上完成登录流程时自定义选项卡保留在前台,此方法就可以正常工作。但是,如果用户启用了双因素身份验证,则他们的 2FA 应用程序可能会在登录流程完成时位于前台。在这种情况下,永远不会启动隐式意图,并且永远不会启动我的活动。

当同时使用 Chrome 自定义选项卡和主 Firefox 应用程序打开登录流程时,会发生这种情况。我在 Android 9 和 10 上进行了尝试,以确保它不是由于 Android对在 Android 10的后台启动活动的限制。它在任何一个操作系统上都不起作用。

这是我清单中的活动的样子:

我也尝试过将hostandpathPattern包含在 中intent-filter,但这也不起作用。当浏览器在后台时,如何强制从浏览器打开活动?

0 投票
0 回答
502 浏览

android - Android 浏览器支持自定义标签

任何人都知道哪些浏览器支持自定义选项卡以及哪个版本?今天开始搜索,发现chrome、firefox、brave、edge都支持自定义Tabs。任何人都对这个主题进行了搜索。

自定义选项卡是一种浏览器功能,可让应用程序更好地控制其 Web 体验,并使本机内容和 Web 内容之间的转换更加无缝,而无需求助于 WebView。

先感谢您

0 投票
1 回答
125 浏览

chrome-custom-tabs - 受信任的 Web 活动和 Bubblewrap 强制渲染引擎 (Chromium/firefox/geko)

在构建 TWA 以强制使用使用的#custom-tabs 引擎时,有没有办法使用bubblewrap?即,如果用户将其默认浏览器设置为 Firefox,则安装的 TWA 将使用 Firefox/gecko 实现...

由于额外的 API 可用和 CSS 处理,我宁愿强制 TWA 使用 chromium #custom-tabs。此外,使用一个引擎进行测试要比使用两个引擎容易得多。

谢谢

0 投票
1 回答
53 浏览

android - 将 html 文件注入或加载到 TWA/自定义选项卡中

我目前正在开发 TWA / 自定义选项卡应用程序。看到用户需要加载网站,我想实现一个离线页面,以防用户没有连接到互联网。

使用 webview 时,我可以只加载一个 html 文件,使用自定义选项卡似乎更困难。

我目前在做什么:应用程序启动后,我会检查用户是否连接到互联网,如果失败,我想显示我的离线页面并让他们选择重试,否则启动自定义标签意图。

是否有一种简单的方法可以将我的离线 html 页面加载/注入到自定义选项卡中,或者是否有另一种方法可以将 html 文件加载到视图中?

0 投票
1 回答
440 浏览

android - 使用 Chrome 自定义选项卡进行单点登录

背景

我正在为我的 android 应用程序实现 SSO(单点登录),一旦用户想要登录,我将他发送到带有重定向 url 的 CustomTab,一旦他通过身份验证,他再次使用代码返回应用程序,我进一步使用此代码给出他访问令牌开始使用该应用程序。

问题

当我尝试使用不同的电子邮件再次登录时,我将他发送到 CustomTab,但会话仍缓存在浏览器中,并且我从上一个会话中获得了成功代码。我希望用户每次导航到网页时都输入他的电子邮件

我需要的

有没有办法从自定义选项卡中清除以前的会话或删除缓存?所以用户每次都可以登录

如果没有,每次我发送意图视图操作时都可以打开相同的选项卡,并且每次我触发意图时都不要打开不同的选项卡

0 投票
0 回答
172 浏览

android - CustomTabsClient.bindCustomTabsService 总是返回 false

我尝试使用预热功能实现自定义选项卡意图。所以它需要创建CustomTabsServiceConnection. 但是,当我绑定服务时,它总是返回false

请在下面检查我的实现:

对此有任何想法吗?