【问题标题】:Is there a way to trigger an activity on a chrome custom tabs resume?有没有办法在 chrome 自定义标签恢复上触发活动?
【发布时间】:2021-10-08 00:13:05
【问题描述】:

我认为没有办法做到这一点,但我想仔细检查一下。

我在 chrome 自定义标签中加载了一些网页内容,这些内容本质上可能是敏感内容。

Android 应用有一个 PIN 屏幕,我们希望在自定义选项卡恢复时显示该屏幕,但我看不出有任何方法可以做到这一点,或者认为这是可能的。

这可以通过自定义标签来完成,还是网络应用需要实现自己的 PIN 屏幕?

【问题讨论】:

  • 好吧,假设在您的应用中打开了此自定义选项卡,您始终可以通过调用Activitys 来锁定屏幕。但如果您只管理网页端,我也担心您无法选择强制锁定设备...
  • @snachmsm 是的,它在我的应用程序中。我发现有一个我可以使用的 onNavigationEvent 回调,但我还不能让它工作。整个 CustomTabServiceConnection 尚未触发 onCustomTabsServiceConnected。希望一旦起作用,回调将按我的需要运行。否则,当自定义选项卡恢复时,我的应用不会触发任何生命周期事件
  • 问题是针对 SDK 30。我猜想与 chrome 包有关,新的包管理器更改它不喜欢所以服务不会绑定。明天我可以弄清楚我的整个工作流程是否可行。

标签: android android-customtabs


【解决方案1】:

当您绑定自定义标签服务时,有一个回调,该服务将在显示标签时提醒您(5) / hidden(6)

CustomTabsServiceConnection customTabsServiceConnection = new CustomTabsServiceConnection() {
            @Override
            public void onCustomTabsServiceConnected(ComponentName componentName, CustomTabsClient customTabsClient) {
                client = customTabsClient;
                client.warmup(0L);
                customTabsSession = client.newSession(new CustomTabsCallback() {
                    @Override
                    public void onNavigationEvent(int navigationEvent, @Nullable Bundle extras) {
                        super.onNavigationEvent(navigationEvent, extras);
                    }
            }
}

然后您可以绑定它,当您在启动选项卡时使用它时,回调将开始触发(SDK

    String packageName = CustomTabsClient.getPackageName(this, null);
    boolean didSucceed = CustomTabsClient.bindCustomTabsService(this, packageName, mCustomTabsServiceConnection);

    CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(customTabsSession);

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2016-04-26
    • 2017-03-26
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多