سننشئ اليوم ملحقات جوجل كروم لمعالجة أنماط ترجمة نتفليكس في الوقت الحقيقي. ستجد معلومات حول إنشاء الامتدادات من الصفر، وبعض النصائح العملية ووجهات نظر عامة حول بنية الامتدادات. إذا لم تكن راضيًا عن خيارات ترجمات نتفليكس المتوفرة أو تريد فقط إنشاء بعض الإضافات بسرعة لتسهيل حياتك، فهذه المقالة مناسبة لك.
أهدافنا
إنشاء منطق التمديد
تخزين الإعدادات في المتصفح التخزين المحلي
التحميل التلقائي وتفعيل الامتدادات على صفحة Netflix فقط
ترسل Netflix من خلال واجهة برمجة التطبيقات الخاصة بها كل جملة ترجمة على حدة. يستخدم أنماط CSS لتصميم الترجمات. من خلال الوصول إلى DOM الصفحة يمكننا معالجة تلك الأنماط المستلمة باستخدام امتداد كروم.
البيان
أولاً، علينا أولاً إنشاء ملف البيان المسمى manifest.json. يخبر هذا الملف المتصفح عن إعداد الامتداد، مثل ملفات واجهة المستخدم، والبرامج النصية في الخلفية، والإمكانيات التي قد يمتلكها الامتداد.
كما ترى، لدينا بعض المعلومات القياسية، مثل الاسم والإصدار والوصف والصفحة الرئيسيةالرابط والبيانالإصدار.
أحد الأجزاء المهمة في البيان هو قسم الأذونات. هذه مصفوفة تحتوي على عناصر يمكن لملحقنا الوصول إليها.
في حالتنا هذه، نحتاج إلى الوصول إلى علامات التبويب للعثور على علامة التبويب النشطة، وتنفيذ البرامج النصية وإرسال الرسائل بين واجهة المستخدم والامتداد. نحن بحاجة إلى تخزين لتخزين إعدادات الامتداد في المتصفح و declarativeContent لاتخاذ إجراءات بناءً على محتوى علامة التبويب. يسمح العنصر الأخير https://*.netflix.com/ بالوصول إلى الامتداد إلى نطاق netflix.com فقط.
تمتلك امتدادات كروم منطقًا منفصلًا عن واجهة المستخدم، لذا نحتاج إلى أن يكون لدينا خلفية.scripts، والتي تخبر الامتداد أين يمكن أن يجد منطقه. مستمر: خطأ يعني أن هذا النص البرمجي سيُستخدم فقط عند الحاجة. Page_action هو القسم الذي يحتوي على جزء واجهة المستخدم. لدينا هنا ملف HTML بسيط لقائمة منبثقة وشعار PNG للملحق.
منطق التمديد
علينا أولًا إعداد سلوكيات وقت التشغيل.onInstalled، وإزالة أي قواعد حالية (على سبيل المثال من الإصدارات القديمة) وإعلان وظيفة لإضافة قواعد جديدة. نحن نستخدم التخزين المحلي لإعدادات التخزين حتى نتمكن من تخصيص الإعدادات الافتراضية بعد تثبيت الامتداد.
هدف قاعدتنا هو تعطيل زر الامتداد على جميع النطاقات بخلاف netflix.com. ننشئ قاعدة جديدة مع أداة تتبع الصفحة الحالة الصفحة الشروط والإعلان إظهار الإجراء حيث سيتم تعيين قاعدة جديدة.
أولاً، نتحقق أولاً من أن الحالة changeInfo.status لديها الحالة مكتمل. هذا يعني أنه تم تحميل موقع الويب في علامة التبويب هذه. ثم نحصل على الإعدادات من وحدة التخزين المحلية ونعلن عن البرنامج النصي الذي يجب تشغيله على علامة التبويب الحالية باستخدام tabId. أخيرًا، في رد النداء نرسل الرسالة مع الإعدادات من واجهة المستخدم إلى البرنامج النصي.
واجهة المستخدم الإضافية
لإنشاء قائمة منبثقة بالملحق مع النموذج، نقوم بإنشاء ثلاثة ملفات: منبثق.html و نافذة منبثقة.css بطبقات مرئية و منبثق.js مع منطق للتواصل بين القائمة والمعزولة الخلفية.js السيناريو
هدف واجهة المستخدم لدينا:
لدينا هنا نموذج HTML بسيط مع التحقق من الصحة المدمج: منبثق.html:
في النص البرمجي أعلاه، نقوم بتحميل الإعدادات من وحدة التخزين المحلية ونرفقها بمدخلات النموذج. ثم نقوم بإنشاء مستمع إلى تقديم حدث مع دوال لحفظ الإعدادات في التخزين المحلي وإرسالها برسالة إلى النص البرمجي الخاص بنا. كما ترى، نستخدم التخزين المحلي في كل مكون. لا يمتلك امتداد كروم مساحة بيانات خاصة به، لذا فإن أبسط حل هو استخدام المساحة المحلية للمتصفح مثل التخزين المحلي. نستخدم أيضًا في كثير من الأحيان إرسال رسالة الوظيفة. إنه ناتج عن بنية ملحقات Chromme - فهي تحتوي على منطق منفصل عن واجهة المستخدم.
السيناريو
حان الوقت الآن لإنشاء السيناريو.js بمنطق التلاعب بأنماط ترجمات Netflix.
أولاً، نقوم بإنشاء على الرسالة مستمع لاستقبال الرسائل ذات الإعدادات من الامتداد.
بالنسبة لـ Netflix، في كل مرة يتلقى فيها جمل الترجمة كاملةً يقوم بتبديل جزء الترجمة فقط من DOM الصفحة. لذا علينا استخدام دالة مراقب مثل مراقب الطفراتوالذي سيؤدي إلى تشغيل تغيير نمط الترجمات في كل مرة عندما تتغير دالة DOM الصفحة. في معاودة الاتصال الدالة نرى معالجة بسيطة للأنماط. تحتوي الأسطر المعلقة على معلومات حول مكان العثور على الأنماط المناسبة.
وقت الجري
أفترض أنه ليس لديك حساب مطور في متجر Chrome الإلكتروني. لذا لتشغيل هذا الامتداد انتقل إلى chrome://extensions/ في متصفح كروم الخاص بك، انقر على تحميل غير معبأ، حدد المجلد الذي يحتوي على الامتداد وهذا كل شيء! بعد ذلك، انتقل بالطبع إلى صفحة Netflix لاختباره.
الاستنتاجات
كما ترى، من السهل البدء في إنشاء بعض الإضافات التي تجعل الحياة أسهل. الجزء الأهم هو فهم بنية ملحقات جوجل كروم المقسمة والتواصل بين المكونات. مصمم العناوين الفرعية هذا ما هو إلا عرض توضيحي بسيط لما يمكنك القيام به باستخدام واجهة برمجة تطبيقات ملحقات كروم.
كما ترى، من السهل البدء في إنشاء بعض الإضافات التي تجعل الحياة أسهل. الجزء الأهم هو فهم بنية ملحقات جوجل كروم المقسمة والتواصل بين المكونات. مصمم الترجمات هذا ما هو إلا عرض توضيحي بسيط لما يمكنك فعله باستخدام واجهة برمجة تطبيقات إضافات كروم.
تخيل تحسين تجربة المشاهدة على منصات مثل Netflix مع قوة الإضافات. على سبيل المثال، فإن حفلة نتفليكس يسمح للمستخدمين بمشاهدة المحتوى معًا بشكل متزامن. و أيقونة الامتداد في شريط الأدوات الخاص بك يمكن أن يوفر لك وصولاً سريعًا إلى ميزات التحكم عند بث نتفليكس. الفكرة وراء أدوات مثل تمديد نتفليكس هو إضافة المزيد من الوظائف مباشرة إلى تطبيق Netflix من خلال تمديد Netflix مدمج في كروم. عند تصفح موقع Netflix الإلكتروني، يمكن أن تساعد هذه الإضافات المستخدمين في التنقل عبر فئات Netflix بشكل أكثر كفاءة أو حتى اكتشاف المخفي محتوى Netflix قد لا يصادفونها بطريقة أخرى.
علاوة على ذلك، تخيل أن تكون قادرًا على إضافة صورة الملف الشخصي المخصصة إلى ملفك الشخصي على Netflix أو التحكم أكثر في الترجمة وسرعة التشغيل. كل هذا يمكن الوصول إليه مباشرةً من كروم ويب المتصفح، مما يجعل تجربة Netflix أكثر ملاءمة لتفضيلات كل مستخدم. لا تعمل الإضافات على تحسين وظائف المواقع الإلكترونية مثل نتفليكس فحسب، بل تعمل أيضًا على رفع مستوى تفاعل المستخدم بشكل عام، مما يجعلها أكثر غامرة وسهلة الاستخدام.