cordova-plugin-dialogs
このプラグインは、グローバルな navigator.notification
オブジェクトを介して、いくつかのネイティブダイアログ UI 要素へのアクセスを提供します。
オブジェクトはグローバルスコープの navigator
にアタッチされていますが、deviceready
イベントの後まで利用できません。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.notification);
}
インストール
cordova plugin add cordova-plugin-dialogs
メソッド
navigator.notification.alert
navigator.notification.confirm
navigator.notification.prompt
navigator.notification.beep
navigator.notification.dismissPrevious
navigator.notification.dismissAll
navigator.notification.alert
カスタムアラートまたはダイアログボックスを表示します。ほとんどの Cordova 実装では、この機能にネイティブダイアログボックスを使用しますが、一部のプラットフォームではブラウザの alert
関数を使用します。これは通常、カスタマイズ性が低くなります。
navigator.notification.alert(message, alertCallback, [title], [buttonName])
-
message: ダイアログメッセージ。(文字列)
-
alertCallback: アラートダイアログが閉じられたときに呼び出すコールバック。(関数)
-
title: ダイアログタイトル。(文字列) (オプション、デフォルトは
Alert
) -
buttonName: ボタン名。(文字列) (オプション、デフォルトは
OK
)
例
function alertDismissed() {
// do something
}
navigator.notification.alert(
'You are the winner!', // message
alertDismissed, // callback
'Game Over', // title
'Done' // buttonName
);
サポートされるプラットフォーム
- Android
- ブラウザ
- iOS
- Windows
navigator.notification.confirm
カスタマイズ可能な確認ダイアログボックスを表示します。
navigator.notification.confirm(message, confirmCallback, [title], [buttonLabels])
-
message: ダイアログメッセージ。(文字列)
-
confirmCallback: 押されたボタンのインデックス(1、2、または 3)または、ボタンを押さずにダイアログが閉じられた場合(0)で呼び出すコールバック。(関数)
-
title: ダイアログタイトル。(文字列) (オプション、デフォルトは
Confirm
) -
buttonLabels: ボタンラベルを指定する文字列の配列。(配列) (オプション、デフォルトは [
OK,Cancel
])
confirmCallback
confirmCallback
は、ユーザーが確認ダイアログボックスのボタンのいずれかを押したときに実行されます。
コールバックは引数 buttonIndex
(数値) を受け取ります。これは、押されたボタンのインデックスです。インデックスは 1 から始まることに注意してください。したがって、値は 1
、2
、3
などです。
例
function onConfirm(buttonIndex) {
alert('You selected button ' + buttonIndex);
}
navigator.notification.confirm(
'You are the winner!', // message
onConfirm, // callback to invoke with index of button pressed
'Game Over', // title
['Restart','Exit'] // buttonLabels
);
サポートされるプラットフォーム
- Android
- ブラウザ
- iOS
- Windows
Android の特異な動作
-
Android は最大 3 つのボタンをサポートし、それ以上のボタンは無視します。
-
Android のダイアログタイトルは 2 行を超えるコンテンツを表示できず、これを超えると無視されます。
Windows の特異な動作
-
Windows 8/8.1 では、MessageDialog インスタンスに 3 つ以上のボタンを追加することはできません。
-
Windows Phone 8.1 では、3 つ以上のボタンを持つダイアログを表示することはできません。
navigator.notification.prompt
ブラウザの prompt
関数よりもカスタマイズ性の高いネイティブダイアログボックスを表示します。
navigator.notification.prompt(message, promptCallback, [title], [buttonLabels], [defaultText])
-
message: ダイアログメッセージ。(文字列)
-
promptCallback: 押されたボタンのインデックス(1、2、または 3)または、ボタンを押さずにダイアログが閉じられた場合(0)で呼び出すコールバック。(関数)
-
title: ダイアログタイトル (文字列) (オプション、デフォルトは
Prompt
) -
buttonLabels: ボタンラベルを指定する文字列の配列 (配列) (オプション、デフォルトは
["OK","Cancel"]
) -
defaultText: デフォルトのテキストボックス入力値 (
文字列
) (オプション、デフォルト: 空の文字列)
promptCallback
promptCallback
は、ユーザーがプロンプトダイアログボックスのボタンのいずれかを押したときに実行されます。コールバックに渡される results
オブジェクトには、次のプロパティが含まれています。
-
buttonIndex: 押されたボタンのインデックス。(数値) インデックスは 1 から始まることに注意してください。したがって、値は
1
、2
、3
などです。 -
input1: プロンプトダイアログボックスに入力されたテキスト。(文字列)
例
function onPrompt(results) {
alert("You selected button number " + results.buttonIndex + " and entered " + results.input1);
}
navigator.notification.prompt(
'Please enter your name', // message
onPrompt, // callback to invoke
'Registration', // title
['Ok','Exit'], // buttonLabels
'Jane Doe' // defaultText
);
サポートされるプラットフォーム
- Android
- ブラウザ
- iOS
- Windows
Android の特異な動作
-
Android は最大 3 つのボタンをサポートし、それ以上のボタンは無視します。
-
Android 3.0 以降では、Holo テーマを使用するデバイスの場合、ボタンは逆順に表示されます。
Windows の特異な動作
- Windows では、ネイティブ API がないため、プロンプトダイアログは HTML ベースです。
navigator.notification.beep
デバイスがビープ音を鳴らします。
navigator.notification.beep(times);
- times: ビープ音を繰り返す回数。(数値)
例
// Beep twice!
navigator.notification.beep(2);
サポートされるプラットフォーム
- Android
- ブラウザ
- iOS
- Windows 8
Android の特異な動作
- Android は、設定/サウンドと表示 パネルで指定されたデフォルトの 通知着信音 を再生します。
navigator.notification.dismissPrevious
以前に開いたダイアログボックスを閉じます。現在ダイアログボックスが開いていない場合は、errorCallback
が呼び出されます。
navigator.notification.dismissPrevious([successCallback], [errorCallback])
- successCallback: 以前に開いたダイアログが閉じられたときに呼び出すコールバック。(関数) (オプション)
- errorCallback: 以前に開いたダイアログを閉じることができなかった場合に呼び出すコールバック。エラーメッセージが渡されます。(関数) (オプション)
例
function successCallback() {
console.log("Successfully dismissed previously opened dialog.");
}
function errorCallback(error) {
console.log("Failed to dismiss previously opened dialog: " + error);
}
navigator.notification.dismissPrevious(
successCallback,
errorCallback
);
サポートされるプラットフォーム
- Android
- iOS
navigator.notification.dismissAll
以前に開いたすべてのダイアログボックスを閉じます。現在ダイアログボックスが開いていない場合は、errorCallback
が呼び出されます。
navigator.notification.dismissAll([successCallback], [errorCallback])
- successCallback: 以前に開いたすべてのダイアログが閉じられたときに呼び出すコールバック。(関数) (オプション)
- errorCallback: 以前に開いたすべてのダイアログを閉じることができなかった場合に呼び出すコールバック。エラーメッセージが渡されます。(関数) (オプション)
例
function successCallback() {
console.log("Successfully dismissed all previously opened dialogs.");
}
function errorCallback(error) {
console.log("Failed to dismiss all previously opened dialogs: " + error);
}
navigator.notification.dismissAll(
successCallback,
errorCallback
);
サポートされるプラットフォーム
- Android
- iOS