识别 Flutter 中 Chrome 自定义选项卡和 SFSafariViewController 内的返回 url

Ale*_*dar 7 android ios chrome-custom-tabs sfsafariviewcontroller flutter

Chrome Custom Tabs我有一个项目,客户被重定向以完成在应用程序内浏览器(在 Android 或SFSafariViewControlleriOS 上)中打开的银行网址上的付款请求。应用程序已编写Flutter,我们使用flutter_inappwebview来实现此目的。完成购买有2条路径:

  • 银行应用程序存在,项目可以打开该银行应用程序并在那里完成付款。成功退货是通过使用 Android 的应用程序链接和 iOS 的通用链接来实现的。这个流程运行得很好。

  • 没有银行应用程序,用户会看到Chrome Custom TabsSFSafariViewController,他需要完成由几个屏幕组成的整个支付流程(输入银行信息的步骤,然后验证密码或短信,最后是成功屏幕)。最后一个屏幕是在打开的 url 中找到“重定向 url”的屏幕(url 的参数之一,而不是整个 url)。

当使用 WebView(该插件中的 InAppBrowser 类)时,有一个回调,onLoadStop我可以在其中识别重定向并监视在支付的最后一个屏幕上重定向时是否找到此“返回网址”。如果Chrome Custom Tabs这样SFSafariViewController的回调不存在,我不确定如何识别此“reutrn url”的存在,并在看到它时采取行动关闭应用内浏览器并执行显示个性化用户消息“您有”的操作成功完成您的购买”。有什么想法可以做到这一点吗?

即使您不知道 flutter,任何关于如何在本机代码中实现这一点的帮助都将有助于了解更多信息是否可能,以及本机应用程序如何处理这种情况。

ora*_*ecz 0

SFSafariViewController 和自定义选项卡为最终用户提供了更安全的浏览器体验,因此开发人员无法深入了解浏览器\xe2\x80\x99s 的内部结构。

\n

因此,涉及完成基于 Web 的流程的大多数操作最终都会重定向到应用程序的深层链接。该链接将包含有关 Web 流是否成功的信息,通常还包含有关 customer\xe2\x80\x99s Web 流的一些上下文数据。深层链接端点负责处理该上下文。

\n