仅显示AlertController一次-Ionic 2 AngularJs 2



我在项目中添加了一个非常基本的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时设置的变量。

您可以在此处使用离子存储

,然后确保设置一个值,指示警报的处理程序中显示了警报。

相关内容

  • 没有找到相关文章

最新更新