クロスプラットフォーム対応のモバイルアプリ開発フレームワークであるIonic2の使い方を紹介していきます。
今回はアプリ上でアラートのダイアログを表示する方法について解説します。
なお、本稿で載せる画像は全てMaterialDesignのスタイルです。iOSでは異なる見た目になる点にご注意下さい。
使い方
Ionic2にはAlertControllerというモジュールがあるのでこれを使ってアラートを表示します。
AlertControllerを使うには、アラートを表示したいページ(コンポーネント)でAlertControllerモジュールをimportし、コンストラクタの引数に指定します。
これでAngularのDependencyInjectionの仕組みによりAlertControllerのインスタンスにアクセスできるようになります。
import { Component } from '@angular/core';
import { NavController, AlertController } from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController, private alertCtrl: AlertController) {
}
}
上の下準備ができたらアラートを表示するメソッドを定義しましょう。
AlertController#createによりAlertオブジェクトが得られるので、Alert#presentでアラートを表示できます。
export class HomePage {
...
presentBasicAlert() {
let alert = this.alertCtrl.create({
title: 'エラー',
subTitle: '通信エラーが発生しました',
buttons: ['OK']
});
alert.present();
}
}
createの引数オブジェクトのキーに使えるもののうち主に使うのは以下になります。
| title | タイトル |
| subTitle | サブタイトル |
| message | 表示するメッセージ |
| inputs | 入力領域の設定 |
| buttons | 表示するボタンの設定 |
入力ダイアログ
例えばログイン等、ユーザーに入力をしてもらいたい場面で表示するダイアログもAlertControllerを使って作成できます。
inputsキーに入力領域を指定します。typeにはpassword、tel、email、url、number等が指定できます。
export class HomePage {
...
presentPromptAlert() {
let alert = this.alertCtrl.create({
title: 'ログイン',
inputs: [
{
name: 'userId',
placeholder: 'ユーザーID'
},
{
name: 'password',
placeholder: 'パスワード',
type: 'password'
}
],
buttons: [
{
text: 'キャンセル',
role: 'cancel',
handler: data => {
}
},
{
text: 'ログイン',
handler: data => {
if (data.userId && data.password) {
//ログイン処理
}
}
}
]
});
alert.present();
}
}
上記の例のようにbuttonsキーには配列で複数のボタンを指定することができます。
handlerにはそのボタンがクリック(タップ)された時の処理を記述します。
また、roleに’cancel’を指定すると、アラートを閉じる用のキャンセルボタンになります。
ラジオ
inputのtypeにradioを指定することでラジオボタンを載せたアラートを表示できます。
export class HomePage {
...
presentRadioAlert() {
let radioOptions = [];
for (let i = 1; i < 5; i++) {
radioOptions.push({type: 'radio', label: `選択肢 ${i}`, value: i, checked: false});
}
let alert = this.alertCtrl.create({
title: 'ラジオ',
inputs: radioOptions,
buttons: [
{
text: 'キャンセル',
role: 'cancel',
handler: data => {
}
},
{
text: 'OK',
handler: data => {
}
}
]
});
alert.present();
}
}
OKボタンのhandlerの引数には選択したラジオのvalueの値が入ってきます。
チェックボックス
inputのtypeにcheckboxを指定することでチェックボックスを載せたアラートを表示できます。
export class HomePage {
...
presentCheckboxAlert() {
let checkOptions = [];
for (let i = 1; i < 5; i++) {
checkOptions.push({type: 'checkbox', label: `選択肢 ${i}`, value: i, checked: false});
}
let alert = this.alertCtrl.create({
title: 'チェックボックス',
inputs: checkOptions,
buttons: [
{
text: 'キャンセル',
role: 'cancel',
handler: data => {
}
},
{
text: 'OK',
handler: data => {
}
}
]
});
alert.present();
}
}
OKボタンのhandlerの引数にはチェックを入れた選択肢のvalueの値が配列で入ってきます。
以上がIonicアプリケーションで各種アラートを表示する方法になります。



