تخطي إلى المحتوى الرئيسي

ArtinTech Solution

Offline E-Paper Reading with a Service Worker and a Web App Manifest

أكثر شكوى شيوعًا من قراءة الصحف على الإنترنت لا تتعلق بالتصميم بل بالنفق. يفتح القارئ العدد في البيت ويكمله في قطار يفقد الإشارة بين المحطات. في الإصدار 1.1 من Inkfold حوّلنا الصحيفة الإلكترونية إلى تطبيق ويب قابل للتثبيت يُبقي العدد المفتوح مقروءًا دون اتصال. لا متجر تطبيقات ولا شيفرة منفصلة.

ملف manifest يُولَّد من إعدادات غرفة الأخبار

ملف manifest هنا مسار برمجي وليس ملفًا ثابتًا. يأخذ اسم الموقع وشعاره ولون العلامة من إعدادات الناشر، ويذكر ثلاث أيقونات: SVG قابلة للتحجيم، وPNG بقياس 192 و512 بكسل، والأكبر معلَّمة بأنها maskable كي يقصها أندرويد بأي شكل. إذا غيّرت غرفة الأخبار اسم الصحيفة تغيّر اسم التطبيق المثبّت أيضًا دون إعادة بناء أي شيء.

Service Worker بثلاث قواعد بسيطة

أبقينا الـ Service Worker صغيرًا بما يكفي لقراءته دفعة واحدة:

  • صور الصفحات والملفات الثابتة: من الذاكرة المؤقتة أولًا. أسماؤها تحتوي على جزء عشوائي ولا تتغير أبدًا، فالنسخة المحفوظة صحيحة دائمًا.
  • صفحات HTML: من الشبكة أولًا. عند الاتصال يحصل القارئ دائمًا على صفحة اليوم الأولى، ولا تُستخدم النسخة المحفوظة إلا عند فشل الشبكة.
  • غرفة الأخبار وحسابات القرّاء لا تُحفظ أبدًا. تذهب طلبات لوحة الإدارة وصفحات الحساب إلى الشبكة مباشرة.

تحمل الذاكرات المؤقتة رقم إصدار، ويُحذف الإصدار القديم عند تفعيل Service Worker جديد، فلا يترك أي تحديث ملفات قديمة خلفه.

القارئ يطلب العدد كاملًا

حفظ ما صادف أن رآه القارئ فقط سيترك فجوات. لذلك عند فتح العدد يرسل سكربت القارئ رسالة إلى الـ Service Worker تتضمن الصورة المتوسطة لكل صفحة يحق للزائر رؤيتها، فيحمّل الناقص منها في الخلفية، حتى ثمانين صفحة لكل عدد. ولا تدخل الصفحات المدفوعة المقفلة هذه القائمة أبدًا، لأن صورها لا تُرسل أصلًا لزائر بلا صلاحية.

صحيفة Inkfold الإلكترونية على ثلاثة هواتف: الرئيسية والقارئ والواجهة البنغالية
بعد تثبيتها من المتصفح تُفتح الصحيفة بملء الشاشة كتطبيق أصلي.

حفظ الأخبار لوقت لاحق

القراءة دون اتصال تكتمل بقائمة قراءة. أصبح بإمكان القرّاء المسجلين حفظ خبر أو قصاصة بنقرة واحدة، فيظهر في صفحة حسابهم مع اسم المطبوعة والتاريخ والصفحة. نقطة الحفظ لا تُكرر العنصر، فالنقر مرتين لا يحفظ الخبر مرتين، وهي تتحقق من الصلاحية أولًا: لا يستطيع حفظ خبر من صفحة مقفلة من لا يحق له قراءته.

صفحة حساب القارئ في Inkfold مع الأخبار المحفوظة والإعدادات
الأخبار المحفوظة وتفضيلات البريد والمدفوعات في مكان واحد.

أهم النقاط

  • ولّد ملف manifest من الإعدادات ليتبع التطبيق هوية العلامة.
  • الذاكرة المؤقتة أولًا للملفات الثابتة، والشبكة أولًا لـ HTML، ولا حفظ للمناطق الخاصة.
  • دع الصفحة تخبر الـ Service Worker بما تحتاجه النسخة الكاملة دون اتصال.
  • لا تحفظ، بل لا ترسل أصلًا، محتوى لا يحق للزائر رؤيته.

في مقال سابق من السلسلة: عارض بصفحتين متقابلتين. ثبّت العرض التجريبي لـ Inkfold من قائمة متصفح هاتفك لتجربته؛ والبرنامج متاح على Charming Theme.

هل تريد صحيفتك على الشاشة الرئيسية لهواتف قرّائك؟ لنتحدث — تبني ArtinTech Solution تطبيقات ويب تقدمية للناشرين.

Share this article

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *