我正在开发 React Native 应用程序,它使用 Web 视图来显示来自特定网站的网页。这里没有涉及 API,所以它只是使用 React Navigation 用作选项卡的网页的主类别 url。每个选项卡都会将该页面上的链接加载为子页面。
要求 父网站使用自定义分析解决方案来跟踪用户活动,因此该网站要求在用户后退或前进时重新加载每个页面,以确保其注册为页面的新视图。 React Native 应用程序目前无法执行此操作,因为 React Navigation 会保存旧访问的页面,并且当用户返回时不会触发此分析脚本。
可以使用 useFocusEffect 或其他类似的解决方案进行手动重新加载,但这不起作用,因为某些 URL 在加载时被重定向到另一个 URL,导致当您手动尝试基于 URL 进行重新加载时,导航堆栈具有错误的 URL导航状态。这基本上会导致导航卡住的循环。
问题 我需要一个解决方案,其中导航堆栈不会缓存或保存除 Web 视图上加载的实际 url 之外的任何状态,并在您返回时将其加载回来。
我想每个选项卡导航器屏幕内都有一个 Web 视图。 如果您想每次返回选项卡时重新加载屏幕,您可能需要检查 TabNavigator 的 unmountOnBlur 属性。
每次返回时,这都会重新安装 WebView。如果你想保留用户导航的 url,你需要将其存储在 Context/Redux 或父组件中