打开外部 uri 时 Blazor 页面重新加载

问题描述 投票:0回答:1

我们正在使用 .NET 7 Blazor Client 用 C# 开发一个应用程序。我们正在使用名为 Adyen 的外部支付系统及其直接支付组件。它通过指定 div 标签的 ID 通过 AJAX 加载到其中一个页面。其中一种支付方式是 Swish(瑞典的一种支付解决方案),它通过 URI swish:// 在手机上打开外部应用程序。一切正常,只是当此应用程序打开时,Blazor 页面会重新加载。

Blazor 的另一个问题是我们指定 Swish 应用程序在完成交易后将用户引导至的返回 URL。尽管地址与打开 Swish 的选项卡完全相同,但这会在新选项卡中打开,从而产生两个完全相同的选项卡。

我们已联系 Adyen 支持人员,他们确认这种情况不应该发生。我们通过使用完全相同的代码在 .NET MVC 中创建页面进行测试,并且页面没有重新加载,表明问题与 Blazor 有关。

我们已经对此进行了测试:

iOS Safari iOS 浏览器 安卓浏览器 安卓火狐

.net blazor-webassembly adyen swish
1个回答
0
投票

以 f.e. 开头的 URI如果在

swish://
视图中处理不当,
/redirect/
可能会导致页面重新加载。我需要更多信息来重现此问题,您能否分享一个最小的可运行代码片段,我可以在其中重现此问题?

我会检查以下一些内容来查明原因:

  • 您是否在 Adyen Drop-in/Components 中使用 Blazor 的 Javascript Interoperability (

    [JSImport]/[JSExport]
    )?

  • 您是否预渲染 Razor 组件,请参阅文档。如果您的应用程序正在预渲染,则无法执行某些操作,例如调用 JavaScript (JS)。

  • 在您的

    Route templates/Route views
    中(如果您正在使用
    NavigatoTo
    ),您能否尝试将其从 Blazor 的路由中排除,以便它不会重新加载。请参阅 documentation
    NavigateTo
    并尝试使用
    forceLoad
    属性。 (我不建议将此作为解决方案,但它可以帮助您缩小问题范围)

  • 指定

    returnUrl
    时,很可能会由于您处理重定向链接的方式而打开两个选项卡 (
    target='_blank'
    )。看看这是否是预期的行为。

这就是我目前在没有任何代码片段的情况下所能做的,请告诉我这是否对您有帮助

© www.soinside.com 2019 - 2024. All rights reserved.