假设您在这里构建一个移动应用程序:
这对我来说是个问题,因为我想在
检测到互联网连接问题,
我认为您正在尝试解决错误的问题。您无需担心延迟加载方面,而是应确保应用程序包中的所有文件都可用!
我不明白 toast 怎么会有延迟加载的代码
开始。
这很容易解释。实际在屏幕中呈现组件的代码,它决定位置、大小、颜色、字体、持续时间等。不需要在核心模块中,因此仅在您第一次尝试使用它时才会加载时间。只需加载确认组件存在以及如何获取它的指令。
这对我来说是个问题,因为我想在
检测到互联网连接问题,因此吐司的代码
需要完全预加载。
这并不完全正确。它需要可用,而不是预加载。我认为如果你能弄清楚为什么你的文件是从远程服务器加载的(就像你在问题中发布的示例一样),我认为这个问题可以得到解决。
为了说明,我刚刚创建了一个全新的 ionic 应用程序并执行了它:
ionic start myapp tabs
ionic serve
我已更改我的 tab1.page.ts 以在示例生成的链接之一上包含 ion-toast 代码和点击事件:
Tab1.page.ts:
import { Component } from '@angular/core';
import { ToastController } from '@ionic/angular';
@Component({
selector: 'app-tab1',
templateUrl: 'tab1.page.html',
styleUrls: ['tab1.page.scss']
})
export class Tab1Page {
constructor(public toastController: ToastController) {}
doIt() {
console.log('done it');
this.presentToast();
}
async presentToast() {
const toast = await this.toastController.create({
message: 'Your settings have been saved.',
duration: 2000
});
toast.present();
}
}
Tab1.page.html:
<ion-item (click)="doIt()">
<ion-icon slot="start" color="medium" name="book"></ion-icon>
<ion-label>Ionic Documentation</ion-label>
</ion-item>
请看下面的截图。我的互联网已关闭,我仍然可以延迟加载 toast 脚本,因为它们都在我正在运行的可用包中。在移动应用程序中,它们应该捆绑在您的应用程序中,而不是远程加载(与他们网站上发生的情况相反)。
现在,如果您在网页上而不是在应用程序中运行此程序,则需要使用其他答案中提供的解决方案之一。我找不到注入 toast 脚本的好方法,所以如果我不得不这样做,我会在我的应用程序加载时在屏幕下方显示一个不可见的 toast,因此它是不可见的。