我在项目中添加了一个非常基本的AlertController
,以便为用户快速介绍该应用程序(第一次打开应用程序),以便将来没有。
我将其包括在ionViewWillEnter()
方法中:
ionViewWillEnter() {
let alert = this.alertCtrl.create({
title: 'Title',
subTitle: 'Subtitle',
message: 'Message',
buttons: ['OK'],
enableBackdropDismiss: false
});
alert.present();
}
作为跨平台开发的起始人,这是我第一次面对这个问题,或者是Android中的内容称为共享重新报道。我已经查看了AlertController的官方文档,但是我在buttons
中没有发现太多有关handler
的文档。
这是我在Android上保存偏好的方法:
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
}
就像其他提到的其他用户一样,您可以使用离子存储进行此操作。首先将其添加到NgModule
声明中的providers
列表中(例如,在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();
}
}
您可以将某个位于已经显示AlertController的持久存储中。
例如,您可以使用Secure Storage
存储显示AlertController时设置的变量。
您可以在此处使用离子存储
,然后确保设置一个值,指示警报的处理程序中显示了警报。