Android chrome自定义选项卡后退问题

问题描述 投票:0回答:2
  • 我正在使用 Chrome 自定义选项卡将支付网关集成到 Android 应用程序中。在支付网关内,我必须提供
    payment_success_redirect
    url 和
    payment_fail_redirect
    表示失败。
  • 这里的问题是,无论支付成功还是失败,用户都会被重定向到给定的页面。现在,如果用户按下硬件后退按钮,上一页开始加载,但我不希望这样。
  • 有没有办法防止这种情况发生,或者明确知道我当前所在的 URL。

我的代码:

    try {
        CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
        CustomTabsIntent customTabsIntent = builder.build();
        customTabsIntent.intent.setData(Uri.parse(url));
        startActivityForResult(customTabsIntent.intent, CHROME_CUSTOM_TAB_REQUEST_CODE);
    } catch (Exception e) {
        e.printStackTrace();
    }
android webview androidx chrome-custom-tabs
2个回答
0
投票

出于隐私考虑,自定义选项卡组件的 API 不允许主机应用程序检索用户当前所在的 URL。

您只能监控部分导航事件,如此处所述。


0
投票

一些支付库为您提供了在付款后使用应用程序链接返回到您的应用程序的机会。通常他们有一本手册。

但如果没有,您也可以向后端发送请求以获取付款状态,关闭选项卡并导航至某个位置。

要关闭选项卡,唯一的选择是重新启动启动 CustomTab 的活动(singleTask)。

您还可以通过从自定义选项卡启动的应用程序链接进行导航,而无需关闭选项卡。但是,这样自定义选项卡可能会保留在后台堆栈中,具体取决于您的应用程序架构以及活动的数量及其启动模式。

为了确保通过您的应用程序打开应用程序链接,请将包名称设置为意图。

val customTabsIntent = CustomTabsIntent.Builder().build()
customTabsIntent.intent.setPackageName("your package name")
customTabsIntent.launchUrl(context, Uri.parse("your success/failure deeplink"))
© www.soinside.com 2019 - 2024. All rights reserved.