ios - CapacitorJS iOS 使用 Vue Router 向后滑动会导致空白页面

标签 ios vue.js vue-router capacitor

我有一个使用 Vue 和 Vue Router 的 Capacitor 项目,并启用了滑动手势 我不确定这个问题是来自 Vue Router 还是 Capacitor。

使用此行的插件启用手势

bridge.getWebView()?.allowsBackForwardNavigationGestures = true;

如果我转到一页,转到下一页,然后向后滑动。 上一页出现在 View 中并按预期滑入。

但是,如果我在移动到下一页之前滚动几个像素。向后滑动时,上一页显示为白色,没有内容。当前页面如预期滑出 只有当幻灯片转换完成后,上一页才会弹出到屏幕上

如果我删除路由器中的scrollBehaviour 函数,它会正常工作

scrollBehavior (to, from, savedPosition) {

该函数可以为空,也可以返回各种位置,这都会导致非事件页面上的幻灯片变白。

Example of the blank previous page

如果没有启用scrollBehavior,向后滑动时我确实会在原来的滚动位置看到上一页。但是,当幻灯片动画结束时,页面会跳转到顶部。

有人对如何解决这个问题有任何想法吗?

最佳答案

我没有使用任何插件,我按照以下说明更改了文件: https://github.com/ionic-team/capacitor/issues/3808#issue-743829827

我的VueRouter:

const router = new VueRouter({
 routes,
  mode: "hash",
  base: process.env.VUE_ROUTER_BASE,
  scrollBehavior(to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition;
    } else {
      return { x: 0, y: 0 };
    }
  }
});

关于ios - CapacitorJS iOS 使用 Vue Router 向后滑动会导致空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70348218/

相关文章:

ios - 如何从 iOS 中的自定义视频播放器屏幕捕获静止图像?

ios - 在第一张图片之外的其他地方启动 ScrollView

vue.js - VueJS - 导出中排序函数的标准做法?

vue.js - 在自定义指令中模拟 v-if 指令

ios - XCode iOS - 如何为 UICollectionView 的位置设置动画? (从屏幕底部滑入)

ios - 处理单击 imageView 的非透明区域 only ios

javascript - 错误 Expected 1 line break before closing bracket, but no line breaks\found vue/html-closing-bracket-newline

vue.js - 如何重用应该使用唯一 vuex 存储实例的组件

vue.js - Vuejs - 路由器 child

javascript - Vue 3 <router-view> 在使用历史模式构建后得到评论