【问题标题】:how to remove page transition in ionic 4 for web version only?如何仅在 ionic 4 中删除网页版的页面转换?
【发布时间】:2020-03-06 23:04:46
【问题描述】:

我有一个angular+ionic 4 应用程序。我正在为 Android、iOS 和 Web 开发。现在,当我从一个页面转到另一个页面时,默认页面转换对于 Android 和 iOS 来说都是完美的,但是当我在浏览器中运行它而不选择任何设备时,(我的意思是没有响应,通常在新选项卡中打开 url)。它显示了与Android相同的页面转换效果。

我只想从网络上移除页面过渡效果。

【问题讨论】:

标签: angular ionic-framework ionic3 angular7 ionic4


【解决方案1】:

我没有对此进行测试,但是使用 Config api 将其设置为 null 怎么样?

您可以在启动时使用forRoot({}) 传递设置,但正如链接的问题所示,platform 代码在那里不可用。

相反,让它正常启动,然后在应用程序的ngOnInit 中您可以执行以下操作:

import { Component, OnInit } from '@angular/core';
import { Config } from '@ionic/angular';
@Component({...})
export class HomePage implements OnInit {
  constructor(private platform: Platform, private config: Config) {
  }

  ngOnInit() {
    if(this.platform.is("desktop")) {
      // disable the nav animations:
      this.config.set('navAnimation', null);
      // or disable all animations
      this.config.set('animated', false);
    }
  }
}

我刚刚通过查看代码 sn-ps 编写了这个,所以我不知道将 navAnimation 设置为 null 是否有效。

另外,根据您应用的结构和加载方式,您可以尝试将其移至服务或路由守卫中,以确保无论您如何进入应用,它都能在正确的时间运行?

【讨论】:

  • 更新了 sn-p 以使用 is("desktop") 而不是 !is("mobile")
  • 这个问题没有被标记为答案,是你@shurvirpm 吗?前一周在另一个问题上发生了类似的事情,非常奇怪。
【解决方案2】:

是的,上面的答案几乎可以工作。但正如我想要的桌面一样,所以

  ngOnInit() {
    if(this.platform.is("desktop")) {
      this.config.set('navAnimation', null);
      this.config.set('animated', false);
    }
  }

【讨论】:

  • 感谢您接受它作为答案并点赞。我没有使用is("desktop") 的原因是因为还有is("tablet")is("phablet") 是一种灰色区域,所以我使用!is("mobile") 来覆盖所有中大屏幕。 Looking at the source code 似乎桌面只是 !isMobile() 反正。
  • 好的,现在我明白了。感谢分享这些知识。
猜你喜欢
  • 1970-01-01
  • 2017-09-08
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 2015-06-17
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多