إضافة مربعات الحوار في كوردوفا
توفر هذه الإضافة إمكانية الوصول إلى بعض مربعات الحوار الأصلية عبر الكائن العام navigator.notification
.
على الرغم من أن هذا الكائن مربوط بالنطاق العام للكائن navigator
، إلا أنه لن يكون متوفرًا إلا بعد إطلاق الحدث deviceready
.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.notification);
}
التثبيت
يمكن تثبيت هذه الإضافة عبر الأمر:
cordova plugin add cordova-plugin-dialogs
التوابع
يُظهر التابع alert
مربع حوار (dialog box) أو مربع تنبيه (alert box) مخصص. معظم تقديمات (implementations) كوردوفا لهذا التابع تستخدم مربع حوار أصلي لهذه الميزة، لكن بعض المنصات تستخدم دالة المتصفح alert
، والتي تكون عادةً أقل قابلية للتخصيص.
navigator.notification.alert(message, alertCallback, [title], [buttonName])
المعاملات
message
: رسالة مربع الحوار (سلسلة نصية)alertCallback
: دالة استجابة (Callback) تُستدعى عند إنهاء مربع التنبيه (alert dialog). (دالة)title
: عنوان مربع الحوار (سلسلة نصية، اختياري، القيمة الافتراضية هيAlert
)buttonName
: اسم الزر (سلسلة نصية، اختياري، القيمة الافتراضية هيOK
)
مثال
function alertDismissed() {
// افعل شيئا ما
}
navigator.notification.alert(
'You are the winner!', // الرسالة
alertDismissed, // دالة الاستجابة
'Game Over', // العنوان
'Done' // اسم الزر
);
المنصات المدعومة
- أندرويد
- Browser
- iOS
- ويندوز
يعرض هذا التابع مربع تأكيد (confirmation dialog box) قابل للتخصيص.
navigator.notification.confirm(message, confirmCallback, [title], [buttonLabels])
المعاملات
message
: رسالة مربع الحوار (سلسلة نصية)confirmCallback
: دالة استجابة (Callback) تُستدعى مع فهرس الزر الذي ضغط عليه المستخدم (1
أو2
أو3
) أو عند إنهاء مربع الحوار دون الضغط على أي زر (0
). (دالة)title
: عنوان مربع الحوار (سلسلة نصية، اختياري، القيمة الافتراضية هيConfirm
)buttonLabels
: مصفوفة من السلاسل النصية تحدد تسميات (labels) الأزرار. (مصفوفة، اختياري، القيمة الافتراضية هي [OK,Cancel
])
confirmCallback
تُنفّذ دالة الاستجابة confirmCallback
عندما يضغط المستخدم على أحد الأزرار في مربع التأكيد.
تأخذ هذه الدالة الوسيط buttonIndex
(عدد)، والذي يمثل فهرس الزر المضغوط (تذكر أن الفهرسة تبدأ بالعدد واحد، وبالتالي فالقيم الممكنة هي 1
، 2
، 3
، إلخ).
مثال
function onConfirm(buttonIndex) {
alert('You selected button ' + buttonIndex);
}
navigator.notification.confirm(
'You are the winner!', // الرسالة
onConfirm, // دالة الاستجابة التي ستُستدعى مع فهرس الزر المضغوط
'Game Over', // العنوان
['Restart','Exit'] // اسم الزر
);
المنصات المدعومة
- أندرويد
- Browser
- iOS
- ويندوز
ملاحظات خاصة بمنصة أندرويد
- يدعم أندرويد ثلاثة أزرار كحد أقصى، ويتجاهل الأزرار الإضافية.
ملاحظات خاصة بمنصة ويندوز
- على منصتي ويندوز 8 و8.1، ليس من الممكن إضافة أكثر من ثلاثة أزرار إلى نُسخة (instance)
MessageDialog
. - على منصة Windows Phone 8.1، لا يمكن إظهار مربع حوار بأكثر من زرين.
يعرض هذا التابع مربع حوار أصلي أكثر قابلية للتخصيص من دالة المتصفح prompt
.
navigator.notification.prompt(message, promptCallback, [title], [buttonLabels], [defaultText])
المعاملات
message
: رسالة مربع الحوار (سلسلة نصية)promptCallback
: دالة استجابة (Callback) تُستدعى مع فهرس الزر الذي ضغط عليه المستخدم (1
أو2
أو3
) أو عندما يتم إنهاء مربع الحوار دون الضغط على أيِّ زر (0
). (دالة)title
: عنوان مربع الحوار (سلسلة نصية، اختياري، القيمة الافتراضية هيPrompt
)buttonLabels
: مصفوفة من السلاسل النصية التي تحدد تسميات الأزرار (مصفوفة، اختياري، القيمة الافتراضية هي["OK","Cancel"]
)defaultText
: القيمة الافتراضية لمربع الإدخال textbox (سلسلة نصية، اختياري، القيمة الافتراضية:""
)
promptCallback
تُنفذ دالة الاستدعاء promptCallback
عندما يضغط المستخدم على أحد الأزرار في مربع الطلب (prompt dialog box). يحتوي الكائن results
الممرّر إلى دالة الاستجابة على الخاصيات التالية:
buttonIndex
: فهرس الزر المضغوط (عدد)، تذكر أن الفهرس يبدأ من العدد واحد، وبالتالي فإن القيم الممكنة هي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', // الرسالة
onPrompt, // دالة الاستجابة المراد استدعاؤها
'Registration', // العنوان
['Ok','Exit'], // اسم الزر
'Jane Doe' // النص الافتراضي
);
المنصات المدعومة
- أندرويد
- Browser
- iOS
- ويندوز
ملاحظات خاصة بمنصة أندرويد
- يدعم أندرويد ثلاثة أزرار كحد أقصى، ويتجاهل ما زاد عن ذلك.
- في الإصدار أندرويد 3.0 وما بعده، تُعرض الأزرار بالترتيب العكسي على الأجهزة التي تستخدم القالب Holo.
ملاحظات خاصة بمنصة ويندوز
- على منصة ويندوز، يُبنى مُربع الطلب بلغة html بسبب عدم وجود واجهة برمجية أصلية لهذا الغرض.
عند تنفيذ هذا التابع، يطلق الجهاز صوت تنبيه (صافرة).
navigator.notification.beep(times);
المعاملات
times
: عدد مرات تكرار الصافرة (عدد).
مثال
// إطلاق صافرتين
navigator.notification.beep(2);
المنصات المدعومة
- أندرويد
- Browser
- iOS
- ويندوز
ملاحظات خاصة بمنصة أندرويد
- يطلق أندرويد النغمة الافتراضية
Notification ringtone
المحددة في الإعدادSettings/Sound & Display
.
أنظر أيضا
- دليل تطوير الإضافات في كوردوفا
- صفحة الأحداث.
- صفحة الإضافة cordova_plugin_file