我在我的项目中添加了一个非常基本的AlertController
,以便让用户快速了解该应用,但由于其目的纯粹是为了欢迎,我想要展示一次(第一次打开应用程序,以便将来没有时间。
我将其包含在ionViewWillEnter()
方法中:
ionViewWillEnter() {
let alert = this.alertCtrl.create({
title: 'Title',
subTitle: 'Subtitle',
message: 'Message',
buttons: ['OK'],
enableBackdropDismiss: false
});
alert.present();
}
作为跨平台开发的先行者,我第一次面临这个问题,或者更确切地说是Android中的内容称为SharedPreferences。我查看过AlertController的官方文档,但我对handler
buttons
内部mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false);
if (!welcomeScreenShown) {
AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Message")
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(welcomeScreenShownPref, true);
editor.commit(); // Very important to save the preference
}
找不到什么。
这是我在Android上为保存首选项所做的事情:
intTest decimal(5,0) UNSIGNED ZEROFILL
答案 0 :(得分:1)
就像提到的其他SO用户一样,您可以使用Ionic Storage来实现这一目标。首先将其添加到providers
声明中的NgModule
列表中(例如,在src/app.module.ts
中):
import { Storage } from '@ionic/storage';
@NgModule({
declarations: [
// ...
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
// ...
],
providers: [
Storage
]
})
export class AppModule {}
然后,您需要在显示警报的页面中将其注入并使用它:
import { Component, Injector } from '@angular/core';
import { Storage } from '@ionic/storage';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(..., private storage: Storage) {
// ...
}
ionViewWillEnter() {
this.storage.get('alreadyShown').then((alreadyShown) => {
if(!alreadyShown) {
this.storage.set('alreadyShown', true);
this.showWelcomeAlert();
}
});
}
private showWelcomeAlert(): void {
let alert = this.alertCtrl.create({
title: 'Title',
subTitle: 'Subtitle',
message: 'Message',
buttons: ['OK'],
enableBackdropDismiss: false
});
alert.present();
}
}
答案 1 :(得分:0)
您可以将某个地方保存在已经显示AlertController的持久存储中。
例如,您可以使用Secure Storage
存储显示AlertController时设置的变量。
答案 2 :(得分:0)
您可以使用离子存储here
然后确保设置一个值,表明警报已显示在警报的处理程序中。