:: فروع شركة الحمد وخدماتها بالسعوديه (آخر رد :soha mag)       :: # دورة الاختبارات الهندسية والجيوفيزيائية للتربة#14 يوليو 2024م#اسطنبول#metc (آخر رد :جهاد سعيد)       :: # دورة الهندسة الأمنية لإدارة الطوارئ#30 يونيه 2024م#دبي#metc (آخر رد :جهاد سعيد)       :: افضل شركة تنظيف بالطائف (آخر رد :ضياء روحي)       :: خدمات شركة الحمد (آخر رد :soha mag)       :: # دورة الإستراتيجيات الحديثة لإدارة أقسام نظم المعلومات#7 يوليو2024م #اسطنبول#metc (آخر رد :جهاد سعيد)       :: دورة إستراتيجية توجيه وتحفيز وتمكين العاملين في العلاقات العامة لبناء بيئة عمل عالية (آخر رد :زينة محمد)       :: دورة حقوق الإنسان في القانون الدولي والشريعة الإسلامية-دورات الأعلام والعلاقات مركزit (آخر رد :زينة محمد)       :: دورة خبير معتمد في العلاقات العامة والإتيكيت والبروتوكول الرسمي والدولي-دورات الأعلام (آخر رد :زينة محمد)       :: دورة الإعلام والعلاقات العامة-دورات الأعلام والعلاقات مركزitr (آخر رد :زينة محمد)      
اختر لونك:
وَقُلِ اعْمَلُوا فَسَيَرَى اللَّهُ عَمَلَكُمْ وَرَسُولُهُ وَالْمُؤْمِنُونَ ۖ وَسَتُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ [ التوبة : ( 105 )] كلمة الإدارة

يرجى إختيار القسم المناسب قبل النشر وسيعاقب المخالف بإنذار أول مرة وسيتم حظره إذا تكرر ذلك كلمة الإدارة

يُمنع كتابة مواضيع السحر والشعوذة والروحانيات والابراج بكافة الأشكال والمخالف سيعاقب بحظر مؤقت وإذا تكرر سيكون حظر دائم تنبيه هام جداً



أضف رد جديد

قديم 03-04-2019, 11:21 PM   #1
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
افتراضي ما هي واجهة Permissions API ؟

نشهد في هذه الأيام، مع تقدم وتطور تقنيات الويب وتطبيقاته بالموازاة مع ثورة الهواتف الذكية وتطبيقات الموبايل، ظهور العديد من الواجهات الجديدة في متصفحات الويب Web APIs ويتم التعامل معها عن طريق الجافاسكريبت طبعا.
آخر هذه الواجهات الجديدة هي واجهة الصلاحيات Permissions API، ففي كثير من الأحيان مثلا نحتاج معرفة مكان تواجد المستعمل أو الزائر (إحداثيات المكان Geolocation API) لإعطائه نتائج أفضل أو لأهداف إحصائية، كما أننا قد نحتاج صلاحيات استخدام الكاميرا في جهازه أو نظام الإشعارات Notifications ولذلك كنا مجبرين في كل حالة من هذه الحالات على استخدام الواجهة API الخاصة بكل خدمة من أجل طلب الحصول على الرخصة من المستعمل كما أنها لا تمكنك من معرفة صلاحيتك في استخدامها إلا إذا طلب واستعلمت ذلك من المستخدم.
واجهة Permissions
واجهة Permissions API

مع واجهة الجافاسكريبت الجديدة Permissions API أصبح بإمكاننا معرفة صلاحياتنا في استعمال كل هذه الخدمات دون طلب ذلك من المستعمل.
navigator.permissions.query({ name: 'geolocation' }).then(function(result) { console.log(result); });
1
2
3

navigator.permissions.query({ name: 'geolocation' }).then(function(result) {
console.log(result);
});



هنا نمرر للدالة query اسم الخدمة التي نود التأكد من صلاحياتنا في استعمالها، في هذه الحالة خدمة تحديد الموقع الجغرافي Geolocation، هذه الدالة بدورها تقوم بإرجاع ما يسمى في الجافاسكريبت بالوعد Promise وبداخله نستطيع معرفة هل بإمكاننا استعمال خدمة Geolocation أم لا (ويتم معرفة هذا انطلاقا من اعدادات المتصفح) عن طريق الكائن result الذي يحتوي بداخله على خاصية تدعى state وتقبل ثلاث قيم وهي :
  • granted : أي أنه يمكنك الولوج لخدمة Geolocation دون طلب الإذن من المستخدم.
  • prompt : يجب عليك أولا طلب الإذن من المستخدم للتمكن من الولوج للخدمة.
  • denied : المستخدم لا يسمح لأحد بأن يلج لهذه الخدمة (الإطلاع على موقعه الجغرافي في هذه الحالة).
إذا في داخل دالة الوعد يمكنك عمل شرط للتأكد من قيمة result.state :
navigator.permissions.query({name:'geolocation'}). then(function(result) { if (result.state == 'granted') { //أنت مرخص لك بالولوج لخدمة تحديد المواقع } else if (result.state == 'prompt') { //لست مرخصا لاستعامل خدمة تحديد المواقع، أطلب من المستخدم أن يعطيك الترخيص. } });
1
2
3
4
5
6
7
8

navigator.permissions.query({name:'geolocation'}). then(function(result) {
if (result.state == 'granted') {
//أنت مرخص لك بالولوج لخدمة تحديد المواقع
} else if (result.state == 'prompt') {
//لست مرخصا لاستعامل خدمة تحديد المواقع، أطلب من المستخدم أن يعطيك الترخيص.
}

});



الشيء الجميل والرائع كذلك بداخل هذه الدالة هو أنك تستطيع الإستماع لحدث Event تغير قيمة result.state وذلك عن طريق الحدث onchange وذلك كما يلي :
navigator.permissions.query({name:'geolocation'}). then(function(result) { if (result.state == 'granted') { //أنت مرخص لك بالولوج لخدمة تحديد المواقع } else if (result.state == 'prompt') { //لست مرخصا لاستعامل خدمة تحديد المواقع، أطلب من المستخدم أن يعطيك الترخيص. } result.onchange = function() { console.log('صلاحية تحديد الموقع الجغرافي تغير إلى : ', this.state); }; });
1
2
3
4
5
6
7
8
9
10
11
12

navigator.permissions.query({name:'geolocation'}). then(function(result) {
if (result.state == 'granted') {
//أنت مرخص لك بالولوج لخدمة تحديد المواقع
} else if (result.state == 'prompt') {
//لست مرخصا لاستعامل خدمة تحديد المواقع، أطلب من المستخدم أن يعطيك الترخيص.
}

result.onchange = function() {
console.log('صلاحية تحديد الموقع الجغرافي تغير إلى : ', this.state);
};

});



هنا كلما غيرت الإعدادات من متصفحك سيتم معرفة ذلك عن طريق الحدث onchange وستتغير قيمة state دون إعادة تحميل الصفحة طبعا.
الشيء الذي يجب تذكره من هذا كله هو أنه باستعمالك واجهة الصلاحيات الجديدة ليس عليك طلب الرخصة من المستخدم إلى إذا كنت فعلا مضطرا لذلك (إذا كانت قيمة state تساوي prompt ).
طلب الرخصة من المستخدم

لطلب الرخصة من المستخدم للولوج إلى احدى الواجهات التي ذكرنا بعضها أعلاه، واجهة الصلاحيات Permissions API تضع بين أيدينا الدالة permissions.request وتستعمل بنفس الطريقة التي استخدمنا بها الدالة permissions.query غير أنها لحد الساعة ليست مدعومة من طرف أي متصفح كونها ما تزال قيد التطوير.
خاتمة

الواجهة لاتزال قيد التطوير، فقط غوغل كروم 43 وفايرفوكس 46 يدعمونها جزئيا لحد الساعة، ولكن الأمر المؤكد أن بعد بضعة أشهر ستكون JavaScript Permissions API مدعومة من كل المتصفحات المعروفة لأنها بصراحة تبدو قيمة للغاية وتجعل أمر التعامل مع الصلاحيات والرخص أسهل وأكثر انسيابية.
واجهة Permissions

raheel غير متواجد حالياً   اقتباس
أضف رد جديد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
إنشاء واجهة برمجية API في Laravel 5 الفارس قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 1 26-07-2019 03:14 PM
10 JAVA Swing GUI JButton واجهة الرسومية جافا القيصر قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 08-05-2019 03:25 PM
7 JAVA Swing GUI JFrame واجهة الرسومية جافا القيصر قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 08-05-2019 03:11 PM
ما هي فوائد واجهة Pusher raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 01-04-2019 04:32 PM
هاك الصلاحيات المتقدمة 5.2.1 - VSa - Advanced Permissions Based on Post Coun مهرة النجدية قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 03-03-2019 07:47 PM


الساعة الآن 02:01 PM

 


Content Relevant URLs by vBSEO ©2010, Crawlability, Inc.