إتاحة استخدام شاشات مختلفة في تطبيقات الويب

ونظرًا لتوفُّر Android على أجهزة ذات مجموعة متنوعة من أحجام الشاشات وكثافات وحدات البكسل، ضع هذه العوامل في الاعتبار في تصميم الويب لديك حتى تتمكن من تحديد أحجام صفحاتك بطريقة مناسبة. يتوافق WebView مع DOM وCSS والعلامة الوصفية لمساعدتك في عرض محتوى الويب بشكل مناسب.

عند استهداف صفحات الويب للأجهزة التي تعمل بنظام التشغيل Android، هناك عاملان رئيسيان يجب أخذهما في الاعتبار من أجل:

إطار العرض
إطار العرض هو المنطقة المستطيلة التي تتيح رسم صفحة الويب الخاصة بك. إِنْتَ تحديد العديد من خصائص إطار العرض، مثل حجمه وحجمه الأولي. الأكثر أهمية هو عرض إطار العرض، الذي يحدد إجمالي عدد وحدات البكسل الأفقية المتوفرة من وحدات البكسل في صفحة الويب منظور واحد - عدد وحدات بكسل CSS المتاحة.
كثافة الشاشة
تحوِّل الفئة WebView ومعظم متصفحات الويب على Android قيم وحدات بكسل CSS لديك. إلى قيم البكسل المستقلة الكثافة، بحيث تظهر صفحتك على الويب بنفس الحجم شاشة متوسطة الكثافة: 160 نقطة لكل بوصة تقريبًا ومع ذلك، إذا كانت الرسومات عنصرًا مهمًا في تصميم الويب، انتبه إلى التحجيم الذي يحدث بكثافات مختلفة. على سبيل المثال، يمكنك إنشاء صورة التي يبلغ عرضها 300 بكسل على شاشة بدقة 320 نقطة لكل بوصة، فهي تستخدم المزيد من وحدات البكسل الفعلية لكل CSS pixel. قد ينتج عن ذلك عناصر مثل التمويه والتقطيع. للتبسيط، يمكن تصغير Android معظم قيم كثافات الشاشات الأصغر حجمًا إلى بضع فئات عامة: صغيرة ومتوسطة وكبيرة. للتعلّم المزيد حول كثافة الشاشة، يُرجى قراءة دعم كثافات وحدات بكسل مختلفة:

يمكنك الاطّلاع على المراجع التالية ذات الصلة:

تحديد خصائص إطار العرض

إطار العرض هو المنطقة التي تُرسم فيها صفحة الويب. رغم أن إجمالي إطار العرض مرئي تتطابق المنطقة مع حجم الشاشة عند تكبيره إلى أقصى حد، ويكون لإطار العرض بكسله الخاص والأبعاد التي توفرها لصفحة الويب. على سبيل المثال، رغم أنه قد تحتوي شاشة الجهاز على يبلغ العرض الفعلي 480 بكسل، ويمكن أن يبلغ عرض إطار العرض 800 بكسل. يتيح ذلك لصفحة الويب التي يبلغ عرضها 800 بكسل وتظهر بالكامل على الشاشة عندما يكون حجم إطار العرض 1.0.

معظم الأقسام على Android، بما في ذلك Chrome، تضبط إطار العرض على حجم كبير بشكل تلقائي. يبلغ عرض وضع _واسع إطار العرض هذا 980 بكسل تقريبًا. تقوم العديد من المتصفحات أيضًا بالتصغير بقدر ما افتراضيًا، لإظهار عرض إطار العرض بالكامل، المعروف باسم وضع _نظرة عامة_.

يمكنك تحديد خصائص إطار العرض لصفحة الويب، مثل العرض والتكبير/التصغير الأولي. باستخدام علامة <meta name="viewport" ...> في المستند <head>

تعرض البنية التالية جميع خصائص إطار العرض المتوافقة وأنواع القيم التي يقبلها كل طرف:

<meta name="viewport"
      content="
          height = [pixel_value | "device-height"] ,
          width = [pixel_value | "device-width"] ,
          initial-scale = float_value ,
          minimum-scale = float_value ,
          maximum-scale = float_value ,
          user-scalable = ["yes" | "no"]
          " />

على سبيل المثال، تحدّد علامة <meta> التالية تطابق عرض إطار العرض. عرض شاشة الجهاز وإيقاف إمكانية التكبير/التصغير:

<head>
    <title>Example</title>
    <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

عند تحسين موقعك الإلكتروني للأجهزة الجوّالة، عادةً ما تضبط العرض على "device-width" حتى يتلاءم الحجم تمامًا على جميع الأجهزة، ثم استخدِم الاستعلامات عن الوسائط في CSS من أجل تكييف التصاميم بمرونة لتلائم أحجام الشاشات المختلفة.

استهداف كثافة الأجهزة باستخدام CSS

تدعم WebView -webkit-device-pixel-ratio، وهي وسائط CSS. التي تتيح لك إنشاء أنماط لكثافة شاشة معينة. تشير هذه القيمة إلى يجب أن تكون قيمة هذه الميزة 0.75 أو 1 أو 1.5 للإشارة إلى أن الأنماط تستهدف الأجهزة ذات درجات الحرارة المنخفضة أو المتوسطة أو المنخفضة الشاشات عالية الكثافة على التوالي

يمكنك إنشاء أوراق أنماط منفصلة لكل كثافة:

<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />

أو حدد الأنماط المختلفة في ورقة أنماط واحدة:

#header {
    background:url(medium-density-image.png);
}

@media screen and (-webkit-device-pixel-ratio: 1.5) {
    /* CSS for high-density screens */
    #header {
        background:url(high-density-image.png);
    }
}

@media screen and (-webkit-device-pixel-ratio: 0.75) {
    /* CSS for low-density screens */
    #header {
        background:url(low-density-image.png);
    }
}

لمزيد من المعلومات حول كيفية التعامل مع كثافات الشاشة المختلفة، وخاصةً الصور، يُرجى الاطّلاع على صور عالية النقاط لكل بوصة بشأن كثافات وحدات البكسل المتغيّرة.

كثافة الأجهزة المستهدفة باستخدام JavaScript

يتوافق WebView مع window.devicePixelRatio، وهي سمة DOM. الاستعلام عن كثافة الجهاز الحالي. تحدد قيمة هذه السمة التحجيم العامل المستخدَم للجهاز الحالي. إذا كانت قيمة window.devicePixelRatio تساوي 1.0، عندها سيتم اعتبار الجهاز جهازًا متوسط الكثافة، ولا يتم تطبيق تحجيم تلقائي. إذا كانت القيمة 1.5، ثم يتم اعتبار الجهاز جهازًا عالي الكثافة، ويتم قياس الصفحة بمقدار 1.5 مرة الافتراضي. وإذا كانت القيمة 0.75، يُعتبر الجهاز جهازًا منخفض الكثافة، وسيتم بمقدار 0.75 مرة بشكل افتراضي.

يستند الحجم الذي يطبقه متصفح Android وWebView إلى حجم الصفحة الكثافة المستهدفة. كما هو موضح في القسم الذي يحدد إطار العرض الكثافة المستهدفة، يكون الهدف التلقائي هو الكثافة المتوسطة، ولكن يمكنك تغيير الاستهداف للتأثير في طريقة ضبط صفحة الويب لتتناسب مع كثافات الشاشة المختلفة.

على سبيل المثال، إليك طريقة الاستعلام عن كثافة الجهاز باستخدام JavaScript:

if (window.devicePixelRatio == 1.5) {
  alert("This is a high-density screen");
} else if (window.devicePixelRatio == 0.75) {
  alert("This is a low-density screen");
}