أذونات واستكشاف المحتوى في نظام التشغيل iOS

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

لتحسين تجربة المستخدم، نُجري بعض التعديلات على تجربة المستخدم في حزمة تطوير البرامج (SDK) للتطبيقات التي تستخدم أداة اختيار الأجهزة العادية. توضّح هذه التعديلات على تجربة المستخدم للمستخدمين سبب الحاجة إلى أذونات الوصول إلى الشبكة المحلية، وكيفية تفعيل ميزة البث في حال تم إيقاف إمكانية الوصول إلى أجهزة الشبكة المحلية.

يمكن إضافة الإصدار 4.6.0 أو إصدار أحدث من حزمة تطوير البرامج (SDK) لتطبيقات iOS المتوافقة مع Cast باستخدام Swift Package Manager من خلال اتّباع عملية إعداد Swift Package Manager أو تنزيلها يدويًا من خلال اتّباع عملية الإعداد اليدوي. يتضمّن هذا الإصدار تغييرات على آلية الاكتشاف الأساسية للسماح للتطبيقات التي تم إنشاؤها باستخدام Xcode 12 بالعثور على أجهزة Cast على الشبكة. من المفترض أن يظهر زر البث الآن دائمًا. إذا لم تكن هناك أجهزة متاحة عندما ينقر المستخدم على زر البث، سيظهر مربّع حوار يقدّم إرشادات حول سبب عدم توفّر الأجهزة، بما في ذلك معلومات حول كيفية إعادة تفعيل إذن الوصول إلى الشبكة المحلية.

التغييرات في حزمة تطوير البرامج (SDK) الخاصة بـ Cast

البث للمرة الأولى

في المرة الأولى التي يحاول فيها المستخدم بث المحتوى، سيظهر مربّع حوار بيني حول الوصول إلى الشبكة المحلية (LNA) يشرح سبب الحاجة إلى الوصول إلى الشبكة المحلية، يليه طلب أذونات الوصول إلى الشبكة المحلية في نظام التشغيل iOS الذي توفّره Apple. توضّح النماذج أدناه المسار:

مسار أذونات الوصول إلى الشبكة المحلية

ميزة البث غير متاحة

بدءًا من الإصدار 4.6.0 من حزمة تطوير البرامج (SDK) لمرسِل iOS، يظهر زر البث دائمًا عندما يكون المستخدم متصلاً بشبكة Wi-Fi. عندما لا تكون أجهزة Google Cast متاحة، يؤدي النقر على زر البث إلى ظهور مربّع حوار يقدّم للمستخدم تلميحات حول الأسباب المحتملة لعدم توفّر Google Cast، كما هو موضّح في النماذج أدناه:

ميزة "التدفق" مع Cast غير متاحة

تحديث تطبيقك

  1. إضافة الإصدار 4.8.6 من حزمة تطوير البرامج (SDK) لتطبيق Cast على أجهزة iOS إلى مشروعك

    في حال استخدام Swift Package Manager، يجب تحديث حزمة google-cast-ios-sdk إلى الإصدار 4.8.6.

    بخلاف ذلك، اسحب حزمة SDK يدويًا.

  2. إضافة "NSBonjourServices" إلى "Info.plist"

    يُرجى تحديد NSBonjourServices في Info.plist للسماح بنجاح عملية البحث عن الأجهزة على الشبكة المحلية.

    عليك إضافة كل من _googlecast._tcp و_<your-app-id>._googlecast._tcp كخدمات لكي تعمل ميزة اكتشاف الأجهزة بشكل صحيح.

    ‫appID هو receiverID، وهو رقم التعريف نفسه المحدّد في GCKDiscoveryCriteria.

    عدِّل تعريف NSBonjourServices في المثال التالي واستبدِل "ABCD1234" بمعرّف تطبيقك.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. إضافة "NSLocalNetworkUsageDescription" إلى Info.plist

    ننصحك بشدة بتخصيص الرسالة التي تظهر في طلب "الشبكة المحلية" من خلال إضافة سلسلة أذونات خاصة بالتطبيق في ملف Info.plist لتطبيقك لـ NSLocalNetworkUsageDescription، مثل وصف ميزة "اكتشاف Cast" وخدمات الاكتشاف الأخرى، مثل DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    ستظهر هذه الرسالة كجزء من مربّع حوار "الوصول إلى الشبكة المحلية" على أجهزة iOS كما هو موضّح في النموذج.

    صورة مربّع حوار أذونات الوصول إلى الشبكة المحلية في Cast
  4. إعادة إصدار تطبيقك على Apple App Store

    ننصحك أيضًا بإعادة إصدار تطبيقك باستخدام الإصدار 4.8.6 في أقرب وقت ممكن.

عمليات التخصيص

بدء اكتشاف أجهزة البث

يتم تلقائيًا بدء عملية اكتشاف أجهزة Cast في المرة الأولى التي ينقر فيها المستخدم على زر البث (GCKUICastButton). إذا كانت هذه هي المرة الأولى التي يحاول فيها المستخدم استخدام تطبيق Cast على الشبكة المحلية، سيظهر الإعلان البيني الجديد لـ LNA، يليه مربّع حوار أذونات الوصول إلى الشبكة المحلية في iOS.

تتوفّر علامة جديدة تتيح لك التحكّم في وقت بدء اكتشاف الأجهزة وسلوك عناصر معيّنة في تجربة المستخدم:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

تكون القيمة التلقائية true. لا تنطبق هذه العلامة إلا عندما تكون العلامة GCKCastOptions::disableDiscoveryAutostart مضبوطة على false.

في حال ضبط السياسة على true، يبدأ اكتشاف أجهزة البث عندما ينقر المستخدم على GCKUICastButton للمرة الأولى. ستظهر رسالة إعلامية للمستخدم لإعلامه بسبب الحاجة إلى إذن الشبكة المحلية. وبعد هذه الرسالة، سيتم عرض رسالة LNA على iOS. يبدأ اكتشاف أجهزة البث بعد تأكيد الرسالة.

في عمليات تشغيل التطبيق اللاحقة، يتم عرض "GCKUICastButton" دائمًا.

في حال ضبط السياسة على false، سيبدأ اكتشاف الأجهزة استنادًا إلى قيمة العلامة GCKCastOptions::disableDiscoveryAutostart.

الأسئلة الشائعة

ماذا يحدث إذا أعدتُ إصدار تطبيق المُرسِل المتوافق مع Google Cast باستخدام الإصدار 4.4.8 من حزمة تطوير البرامج (SDK) لمنصّة Google Cast وXcode 12؟

قد لا يتمكّن تطبيقك من العثور على أجهزة Google Cast على الشبكة المحلية ما لم تحصل على إذن بالبث المتعدّد الوجهات على الشبكة من Apple. يُرجى العِلم أنّ Apple لن تمنح أذونات البث المتعدّد الوجهات لغرض وحيد وهو إتاحة ميزة &quot;البث&quot;. إذا كنت تخطّط لإنشاء تطبيق باستخدام Xcode 12، عليك طرح تطبيقك باستخدام الإصدار 4.6.0 من Cast.

ما الذي يجب عليّ فعله لتحديث تطبيقي بعد طرح الإصدار الجديد من حزمة تطوير البرامج (SDK) لتطبيق Cast؟

  • يُرجى تعديل ملف Info.plist في تطبيقك لتضمين وصف لاستخدام الشبكة المحلية.
  • أضِف NSBonjourServices إلى Info.plist في تطبيقك وقدِّم أسماء خدمات Bonjour لـ Cast ورقم تعريف تطبيقك.
  • يجب ترقية تطبيق المُرسِل لاستخدام الإصدار 4.6.0 من حزمة تطوير البرامج (SDK) لمنصّة Cast.
  • أعِد إصدار تطبيقك في Apple App Store.

لماذا توقّفت الأجهزة عن الظهور في أداة اختيار الأجهزة المخصّصة بعد الترقية إلى الإصدار 4.6.0؟

هذه مشكلة معروفة يمكن أن تحدث إذا كنت تستخدم أداة اختيار جهاز مخصّصة بدلاً من أداة اختيار الجهاز العادية. في الإصدار 4.4.8 من حزمة تطوير البرامج (SDK) لمنصّة Cast والإصدارات الأقدم، كان يتم فحص الأجهزة تلقائيًا. اعتبارًا من الإصدار 4.6.0، عليك استدعاء طريقة startDiscovery بشكل صريح في فئة GCKDiscoveryManager لبدء عملية اكتشاف الأجهزة.

السبب في هذا التغيير هو أنّ طلب الإذن بالوصول إلى الشبكة المحلية (LNA) سيظهر بعد أن يُجري التطبيق عملية الفحص للمرة الأولى. قد يؤدي ذلك إلى ظهور مربّعات حوار الأذونات في أماكن عشوائية في تطبيقك.

على المطوّرين الذين ينشئون أداة مخصّصة لاختيار الأجهزة في تطبيقاتهم تقديم إعلان بيني لمرة واحدة قبل بدء عملية البحث عن الأجهزة لأول مرة.