如何在ionic4 angular项目中全局禁用页面左滑手势?

11

已经尝试使用以下方法来实现此目标:

<ion-router-outlet swipeGesture="false" animated="false"></ion-router-outlet>

同时在 app.module 文件中:

IonicModule.forRoot({
    swipeBackEnabled: false
}),

config.xml:

<preference name="AllowBackForwardNavigationGestures" value="false" />

..但是水平划动手势仍会触发导航到其他页面 :-(

我能想到和尝试过的可能方法,但部分不成功的包括:

  1. 以某种方式使用已弃用的ionicNavController?
  2. 使用hammerJS?
  3. 使用未记录的GestureController (https://github.com/ionic-team/ionic/tree/a77ee2a6f88e8defb1763b71e77410264fafac70/core/src/utils/gesture)

如果有人能指点正确的方向或提供如何禁用刷卡手势的示例,主要是针对iOS,我将非常高兴,非常感谢


我也想做同样的事情。你找到答案了吗? - Andreas Gassmann
很遗憾,不行——我正在绕开它——观察路由并相应地重定向,但这一点都不令人满意。 - Markus Kösel
@AndreasGassmann 谢谢,我只是忘记在 swipeGesture 周围加上括号了。天啊 :-D - Markus Kösel
我们都会遇到这种情况:)。很高兴我能帮到你。 - Andreas Gassmann
2个回答

31
我通过在ion-router-outlet中添加[swipeGesture] =“false”来解决了这个问题,如此处所述:https://github.com/ionic-team/ionic/issues/16441 起初,我错误地将其添加到了tabs.html文件中的所有ion-router-outlet中。那样行不通。相反,您只需将其添加到app.component.html文件中的ion-router-outlet中即可。对我很有用。

app.component.html

<ion-app>
  <ion-router-outlet [swipeGesture]="false"></ion-router-outlet>
</ion-app>

我正在使用ionic版本4.0.0-beta.17


这很好,但是全局配置是否已经对任何人起作用了? - Jay Ordway
3
在具有返回按钮的子页面上,此功能无法正常工作。 - Vikas Baru
令人惊讶的是与其他评论相反,这对于我来说在app.component.html中存在的唯一现有的ion-router-outlet"@ionic/angular": "^4.7.1"一起使用是可行的。 - Aaron Jordan

-1
<ion-menu [swipeGesture]="false"> </ion-menu>

在Ionic4版本中(删除所有页面的SwipeGesture)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接