التقاط زر النقرات الأصلية في هاتف Android في JavaScript
-
25-09-2019 - |
سؤال
هل هناك طريقة يمكننا من خلالها التقاط زر النقر على المنزل والرد في ملف HTML في تطبيق Android باستخدام PhoneGap/JQTouch/JavaScript؟
لدي تطبيق لنظام Android باستخدام PhoneGap. أرغب في التقاط النقر على الزر الأصلي والرجوع إلى هاتف Android في صفحة HTML للخروج / العودة بأمان.
المحلول
يمكنك التقاط حدث زر العودة في PhoneGap ، ولكن ليس زر الصفحة الرئيسية (هذه ممارسة أندرويد سيئة لأن هناك توقعًا واضحًا للمستخدم بغض النظر عن التطبيق الذي تستخدمه حول ما يفعله مفتاح المنزل: يعيدك إلى منزلك الشاشة! أنت لا تريد تجاوز هذه الوظيفة).
سأوجهك إلى أجزاء من التعليمات البرمجية في PhoneGap (أحدث مصدر! اسحب من Github للحصول على أحدث إصدار من إطار PhoneGap) للتوجيه.
أولاً ، هناك كائن Java "BrowserKey" مرتبط بـ "Backbutton" JavaScript Global:
http://github.com/phonegap/phonegap-droid/blob/master/framework/src/com/phonegap/droidgap.java#l291
تعريف هذه الفئة هنا: http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/browserkey.java
أول شيء تحتاج إلى القيام به في التطبيق الخاص بك (أقترح عليك تشغيل هذا أثناء تهيئة التطبيق) هو السماح للجانب الأصلي من الإطار معرفة أنك تتجاوز وظائف زر العودة. ستفعل هذا في JavaScript مع مكالمة بسيطة:
BackButton.override();
من هناك فصاعدًا ، يمكنك إرفاق معالج حدث بحدث "التراجع" للمستند لتنفيذ المنطق في كل مرة يتم فيها الضغط على زر العودة. شيء من هذا القبيل يجب أن تعمل:
document.addEventListener('backKeyDown', function(e) {
alert('you hit the back key!');
}, false);
كإضافة ، إليك رمز JavaScript الذي يلف حدث زر الخلف: http://github.com/phonegap/phonegap-android/blob/master/framework/assets/js/keyevent.js
في الأساس ، بعد استدعاء backbutton.Override () ، سوف يتصل الجانب الأصلي من الإطار.
نصائح أخرى
تعمل عينة الرمز هذه لـ PhoneGap 0.9.5 وبعد ذلك (تم اختبارها في 0.9.6):
document.addEventListener("menubutton", function () {
alert('Menu button');
}, false);
document.addEventListener("searchbutton", function () {
alert('Search button');
}, false);
document.addEventListener("backbutton", function () {
alert('Back button');
}, false);
لا يمكن التعامل مع زر الصفحة الرئيسية. هذا محجوز من قبل النظام.
لدي تطبيق لنظام Android باستخدام PhoneGap. أرغب في التقاط النقر على الزر الأصلي والرجوع إلى هاتف Android في صفحة HTML للخروج/العودة بأمان.