【问题标题】:Ionic Deep Linking离子深层链接
【发布时间】:2018-01-28 21:59:57
【问题描述】:

我已经使用深度链接创建了我的第一个 Ionic 应用程序。 现在不得不放弃lazy-loading with deep links... 但是当您在其他地方导航时,例如返回主页时,URL 停留在周围的方式让我感到困惑。人们如何解决这个问题?只是做某种 URL 重写? 或者这样做可能会破坏其他东西? 看来你也不能轻易清除 URL,因为它又回来了。

我看到了Ionic blog,以及Github issues 中关于这种行为的激烈讨论。

似乎@IonicPage 可以控制自定义内容,但这仅适用于延迟加载/模块,对吗?或者你可以在不延迟加载的情况下使用注解吗?

任何关于如何最好地使用它的建议将不胜感激。

我还注意到其他一些奇怪的行为,因为我用来保存对 HomePage 的引用的数据结构变得未定义,即使它被导出为常量。这是应用程序启动时的初始 rootNav。 我不得不做一个笨拙的黑客来解决它,调整它

if (page.home != undefined) { //Bug in Ionic perhaps
   this.nav.setRoot(HomePage, params)
   .catch((err: any) => {
          console.log(`Didn't set HOME root: ${err}`);
   }); 
} else {
   this.nav.setRoot(page.component, params)
   .catch((err: any) => {
          console.log(`Didn't set nav root: ${err}`);
    });
}

Chrome 控制台.log

PageInterface 数据结构

在我导入的类的组件键中丢失了“主页”的常量的一部分。

这是其他人经历过的吗?我没有看到任何建议或明显错误。干杯。

【问题讨论】:

  • 我的数据结构中的组件很奇怪。今天随机地,另一个名为 LaunchpadPage 的对象引用未定义。然而昨天还好好的!想用海量交换机来保障!

标签: angular typescript ionic3 deep-linking


【解决方案1】:

首先,自 3.6.0 版(尤其是选项卡)以来,ionic 中的导航存在相当多的错误,它们重构了 URL 的生成方式(现在它们更具可读性)。正如您已经提到的,github 上有许多未解决的问题,根据团队的说法,这些问题将在接下来的几周内得到解决(他们目前正忙于重构 ionic v4 的整个框架)。

回答您有关 IonicPage 装饰器的问题: 您也可以在不延迟加载页面的情况下使用它: 在您的主模块app.module.ts 中添加以下内容:

imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp, {
      preloadModules: true
    })
],

preloadModules: true 告诉 ionic 你想急切地加载你的页面(而不是懒惰)。 在 IonicPage 装饰器中,您可以配置模块在启动时加载的优先级:

@IonicPage({
  name: 'my-page',
  priority: 'high'
})

对于priority 属性,可以使用值highlowoffoff 表示页面是延迟加载的。您可以在 IonicPage 装饰器的 documentation 中找到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2022-12-03
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多