Cordova アプリでダイアログ表示したりビープ音を鳴らしたりして通知できる「cordova-plugin-dialogs」
cordova-plugin-dialogs というプラグインを使うと、ユーザへの通知に関する処理が手軽に実装できる。
今回も iOS 向けのサンプルアプリを作ったので、以下の feat/pluginDialogs ブランチを見てみてもらいたい。
プラグインのインストール
いつもどおり cordova コマンドでプラグインをインストール。
$ cordova plugin add cordova-plugin-dialogs
このプラグインをインストールすることで使えるようになるメソッドは以下の4つ。
navigator.notification.alert()navigator.notification.confirm()navigator.notification.prompt()navigator.notification.beep()
順に説明していく。
alert() : アラート表示
JavaScript だと、通常の alert() 関数 (window.alert()) が存在していて、Cordova アプリ上でも window.alert() は使えるのだが、このプラグインの navigator.notification.alert() を使うと、ボタンラベルを変えたりコールバック関数を設定したりなど、よりリッチなアラートが表示できる。
window.navigator.notification.alert(
'アラートメッセージ',
function() {
console.log('「オッケー」ボタン押下後のコールバック関数');
},
'アラートタイトル',
'オッケー'
);
confirm() : 確認ダイアログ表示
こちらも、window.confirm() でも最低限の確認ダイアログを表示させることはできるが、navigator.notification.confirm() はよりカスタマイズしやすい API になっている。
window.navigator.notification.confirm(
'確認ダイアログメッセージ',
function(buttonIndex) {
console.log('押下したボタンの Index (1 から始まるので注意) : ' + buttonIndex);
if(buttonIndex === 1) {
console.log('オッケー ボタンが押されました');
}
else if(buttonIndex === 2) {
console.log('ダメー ボタンが押されました');
}
},
'確認ダイアログタイトル',
['オッケー', 'ダメー']
);
通常の confirm() だと「OK」と「キャンセル」ボタンのみだが、このプラグインを使うと3つ以上のボタンを用意することができる。それぞれラベルを自分で指定できる他、コールバック関数で押されたボタンを判別できる。ただし、buttonIndex は 0 からではなく 1 から始まるので注意。
prompt() : プロンプト表示
ユーザに任意の情報を入力させるプロンプトを表示する navigator.notification.prompt()。これも window.prompt() よりリッチなカスタマイズができる。
window.navigator.notification.prompt(
'プロンプトメッセージ',
function(results) {
console.log('押下したボタンの Index : ' + results.buttonIndex);
console.log('入力内容 : ' + results.input1);
},
'プロンプトタイトル',
['オッケー', 'ダメー'],
'デフォルトテキスト'
);
こちらもボタンを3つ以上置いたりできる。押下したボタンの情報と入力値はコールバック関数にオブジェクトにまとめて渡されるので、それぞれ results.buttonIndex と results.input1 で取り出して使える。
beep() : ビープ音再生
このプラグインの本命かもしれない。手軽にビープ音を再生できるのが navigator.notification.beep() メソッド。プラットフォームに合わせて、プラグインがお抱えの音声ファイルを裏で持っているらしく、iOS の場合はピロロロという音が再生される。
// ビープ音を2回繰り返して再生する
window.navigator.notification.beep(2);
引数でリピート回数を指定できる。音色の変更には対応していないが、サクッと通知音を鳴らすにはもってこいだろう。ちなみに Browser プラットフォームでの検証時も、うまくバックグラウンドでそれらしいビープ音を再生してくれる。
以上。ビープ音とともにアラートでユーザの操作を一度奪い、強くユーザにお知らせを出すなど、色々な使い方ができそうなプラグインだ。