取消 chrome 个自定义选项卡时的回调

Callback on dismiss of chrome custom tabs

我有一个 activity 'A',在 activity 里面,我打开了一个 chrome 自定义选项卡。现在,当用户关闭 chrome 自定义选项卡时,我想打开另一个 activity 'B'。有没有办法知道 chrome 自定义选项卡何时关闭。或任何其他方式解决上述问题。

您可以跟踪自定义选项卡是在 Activity A 上的布尔变量上打开的。

private boolean mCustomTabsOpened = false;

public void launchCustomTabs(String url) {
   mCustomTabsOpened = true;
   new CustomTabs.Builder().build().launchUrl(this, Uri.parse(url));
}

然后,使用ActivityA的onResume()发射ActivityB

public void onResume() {
    if (mCustomTabsOpened) {
        mCustomTabsOpened = false;
        startActivity(this, ActivityB.class);
    }
}

您可能希望使用 KeepAliveService 来防止 ActivityA 被销毁,如图 here

在 Activity A 中启动 Chrome 自定义选项卡,如下所示:

private final int CHROME_CUSTOM_TAB_REQUEST_CODE = 100;

public void launchCustomTabs(String url) {
    CustomTabsIntent customTabsIntent = builder.build();
    customTabsIntent.intent.setData(Uri.parse(url));
    startActivityForResult(customTabsIntent.intent, CHROME_CUSTOM_TAB_REQUEST_CODE);
}

然后在Activity结果中检查该请求代码:

if (requestCode == CHROME_CUSTOM_TAB_REQUEST_CODE) {
    startActivity(this, ActivityB.class);
}

好吧,这行不通,因为现在无法跟踪 chrome 自定义选项卡的关闭,如果您尝试在点击后退按钮时调用或显示对话框,即,要求确认。 好吧,您可以通过 activity(首先启动它)来处理它们,但我认为这不是您想要的。 但如果有人确实找到了解决方案,请在下面发表评论。