payment_success_redirect
url 和 payment_fail_redirect
表示失败。我的代码:
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();
}
出于隐私考虑,自定义选项卡组件的 API 不允许主机应用程序检索用户当前所在的 URL。
您只能监控部分导航事件,如此处所述。
一些支付库为您提供了在付款后使用应用程序链接返回到您的应用程序的机会。通常他们有一本手册。
但如果没有,您也可以向后端发送请求以获取付款状态,关闭选项卡并导航至某个位置。
要关闭选项卡,唯一的选择是重新启动启动 CustomTab 的活动(singleTask)。
您还可以通过从自定义选项卡启动的应用程序链接进行导航,而无需关闭选项卡。但是,这样自定义选项卡可能会保留在后台堆栈中,具体取决于您的应用程序架构以及活动的数量及其启动模式。
为了确保通过您的应用程序打开应用程序链接,请将包名称设置为意图。
val customTabsIntent = CustomTabsIntent.Builder().build()
customTabsIntent.intent.setPackageName("your package name")
customTabsIntent.launchUrl(context, Uri.parse("your success/failure deeplink"))