android - 在 Flutter 中识别 Chrome 自定义选项卡和 SFSafariViewController 中的返回 url
问题描述
Chrome Custom Tabs
我有一个项目,客户被重定向以在应用内浏览器(在 Android 或SFSafariViewController
iOS 上)中打开的银行 url 上完成付款请求。应用程序是编写的Flutter
,我们为此使用了 flutter_inappwebview。完成购买有 2 条路径:
银行应用程序存在,项目可以打开该银行应用程序并在那里完成支付。成功返回是使用适用于 Android 的应用链接和适用于 iOS 的通用链接实现的。此流程完美运行。
没有银行应用程序,用户会看到
Chrome Custom Tabs
orSFSafariViewController
,他需要完成由几个屏幕组成的整个支付流程(输入银行信息的步骤,然后验证密码或短信,最后是成功屏幕)。最后一个屏幕是在打开的 url 中找到的带有“redirect url”的屏幕(url 的参数之一,而不是整个 url)。
使用 WebView(该插件中的 InAppBrowser 类)时,有一个回调onLoadStop
,我可以在其中识别重定向并监视在最后一个付款屏幕上重定向时是否找到此“返回 url”。如果回调Chrome Custom Tabs
不SFSafariViewController
存在,并且我不确定如何识别此“reutrn url”的存在并在我看到它时采取行动以关闭应用内浏览器并执行显示个性化用户消息“你有成功完成您的购买”。任何想法这是如何工作的?
即使你不知道如何在本机代码中实现这一点,任何关于如何在本机代码中实现的帮助也将有助于了解更多信息,如果这甚至可能,以及本机应用程序如何处理这种情况。