برنامههایی که دستگاههای موجود در شبکه محلی را اسکن میکنند اکنون با کادر گفتگوی اجازههای یکباره از کاربران میخواهند دستگاههای شبکه محلی را پیدا کنند و به آنها متصل شوند. پلاتفرم Cast از شبکه محلی برای شناسایی و کنترل دستگاههای Cast استفاده میکند، بنابراین اگر کاربر اجازه را رد کند، نمیتواند محتوا را پخش کند.
برای بهبود تجربه کاربر، برخیاز اصلاحات تجربه کاربری را در «کیت توسعه نرمافزار» برای برنامههایی که از انتخابگر دستگاه استاندارد استفاده میکنند اعمال میکنیم. این اصلاحات تجربه کاربری برای کاربران واضحتر میکند که چرا اجازههای دسترسی به شبکه محلی لازم است، و همچنین اگر دسترسی دستگاه به شبکه محلی غیرفعال شده باشد، نحوه فعال کردن پخش محتوا را توضیح میدهد.
«کیت توسعه نرمافزار Cast iOS نسخه ۴.۶.۰» یا نسخههای جدیدتر را میتوان با «مدیر بسته Swift» با دنبال کردن راهاندازی «مدیر بسته Swift» اضافه کرد یا با دنبال کردن راهاندازی دستی بهصورت دستی بارگیری کرد. این نسخه شامل تغییراتی در سازوکار شناسایی زیربنایی است تا به برنامههایی که با Xcode 12 ساخته شدهاند اجازه دهد دستگاههای Cast را در شبکه پیدا کنند. اکنون دکمه «پخش محتوا» باید همیشه نمایش داده شود. اگر وقتی کاربر روی دکمه «پخش محتوا» ضربه میزند هیچ دستگاهی دردسترس نباشد، کادر گفتگویی نمایش داده میشود که راهنماییهایی درباره اینکه چرا دستگاهها ممکن است دردسترس نباشند ارائه میدهد، ازجمله اطلاعاتی درباره نحوه فعال کردن مجدد اجازه دسترسی به شبکه محلی.
تغییرات کیت توسعه نرمافزار Cast
پخش محتوا برای اولینبار
اولینباری که کاربر تلاش میکند محتوا را پخش کند، کادر گفتگوی میانهای برای دسترسی به شبکه محلی (LNA) ظاهر میشود که توضیح میدهد چرا دسترسی به شبکه محلی لازم است، و سپس پیامواره اجازههای دسترسی به شبکه محلی iOS ارائهشده ازسوی Apple ظاهر میشود. نمونههای اولیه زیر جریان را نشان میدهند:

پخش محتوا دردسترس نیست
از SDK فرستنده iOS نسخه ۴.۶.۰، دکمه «پخش محتوا» همیشه وقتی کاربر به Wi-Fi متصل است نمایش داده میشود. وقتی دستگاههای «پخش محتوا» دردسترس نباشند، با تکضرب زدن روی دکمه «پخش محتوا»، کادر گفتگویی باز میشود که به کاربر درباره دلایل احتمالی دردسترس نبودن «پخش محتوا» سرنخ میدهد، همانطور که در نمونههای زیر نشان داده شده است:

درحال بهروزرسانی برنامه
-
افزودن Cast iOS SDK 4.8.6 به پروژه
اگر از مدیر بسته Swift استفاده میکنید، بسته
google-cast-ios-sdkرا به نسخه ۴.۸.۶ بهروز کنید.درغیراینصورت، کیت توسعه نرمافزار را بهصورت دستی بکشید.
-
افزودن
NSBonjourServicesبهInfo.plistNSBonjourServicesرا درInfo.plistخود مشخص کنید تا کاوش شبکه محلی موفقیتآمیز باشد.برای اینکه شناسایی دستگاه بهدرستی کار کند، باید هم
_googlecast._tcpو هم_<your-app-id>._googlecast._tcpرا بهعنوان سرویس اضافه کنید.appID همان receiverID شما است، که همان شناسهای است که در
GCKDiscoveryCriteriaتعریف شده است.تعریف
NSBonjourServicesمثال زیر را بهروز کنید و «ABCD1234» را با appID خودتان جایگزین کنید. -
NSLocalNetworkUsageDescriptionرا بهInfo.plistاضافه کنیدبهشدت توصیه میکنیم با افزودن رشته اجازه ویژه برنامه در فایل
Info.plistبرنامه برایNSLocalNetworkUsageDescription، مثلاً برای توصیف شناسایی «پخش محتوا» و دیگر سرویسهای شناسایی مثل DIAL، پیامی را که در پیامواره «شبکه محلی» نشان داده میشود سفارشیسازی کنید.این پیام بهعنوان بخشی از کادر گفتگوی «دسترسی به شبکه محلی» در iOS همانطور که در نمونه اولیه نشان داده شده است ظاهر خواهد شد.
-
انتشار مجدد برنامه در Apple App Store
توصیه میکنیم برنامه خود را در اسرع وقت بااستفاده از نسخه ۴.۸.۶ دوباره منتشر کنید.
سفارشیسازیها
شروع کشف دستگاه پخش محتوا
بهطور پیشفرض، کاوش دستگاه Cast اولینباری که کاربر روی دکمه Cast (GCKUICastButton) ضربه میزند شروع میشود. اگر این اولینباری است که کاربر سعی میکند از برنامه Cast در شبکه محلی استفاده کند، میانآگهی جدید LNA و پساز آن کادر گفتگوی اجازههای «دسترسی به شبکه محلی» iOS نمایش داده میشود.
پرچم جدیدی دردسترس است که به شما امکان میدهد زمان شروع کشف دستگاه و عملکرد برخیاز عناصر «تجربه کاربری» را کنترل کنید:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
مقدار پیشفرض true است. این پرچم فقط زمانی کاربرد دارد که پرچم
GCKCastOptions::disableDiscoveryAutostart
روی false تنظیم شده باشد.
اگر روی true تنظیم شود، کاوش دستگاه «پخش محتوا» وقتی شروع میشود که کاربر برای اولینبار روی
GCKUICastButton ضربه بزند. پیام اطلاعاتی به کاربر نمایش داده میشود و به او اطلاع میدهد که چرا اجازه شبکه محلی لازم است. پساز آن پیام iOS LNA نمایش داده خواهد شد.
کشف دستگاه پخش محتوا پساز تأیید پیام شروع میشود.
در راهاندازیهای بعدی «برنامه»، GCKUICastButton همیشه نمایش داده میشود.
اگر روی false تنظیم شود، کاوش دستگاه براساس مقدار پرچم
GCKCastOptions::disableDiscoveryAutostart شروع میشود.
پرسشگان
اگر برنامه فرستنده Cast خودم را با Cast SDK v4.4.8 و Xcode 12 مجدداً منتشر کنم چه اتفاقی میافتد؟
برنامه شما ممکن است نتواند دستگاههای سازگار با Cast را در شبکه محلی پیدا کند مگر اینکه از Apple حق چندفرستی شبکه را دریافت کرده باشید. توجه داشته باشید که Apple فقط برای پشتیبانی از Cast، مجوزهای چندفرستی اعطا نخواهد کرد. اگر قصد دارید با Xcode 12 بسازید، باید برنامهتان را با Cast 4.6.0 منتشر کنید.
پساز انتشار نسخه جدید کیت توسعه نرمافزار Cast، برای بهروزرسانی برنامهام چه کاری باید انجام دهم؟
Info.plistبرنامهتان را بهروز کنید تا شرح استفاده از شبکه محلی را اضافه کنید.NSBonjourServicesرا بهInfo.plistبرنامهتان اضافه کنید و نامهای سرویس Bonjour را برای Cast و شناسه برنامهتان ارائه دهید.- برنامه فرستنده را ارتقا دهید تا از «کیت توسعه نرمافزار Cast» نسخه ۴.۶.۰ استفاده کند.
- برنامهتان را در فروشگاه برنامه Apple دوباره منتشر کنید.
چرا پساز ارتقا به نسخه ۴.۶.۰، دستگاهها دیگر در انتخابگر دستگاه سفارشی من نشان داده نمیشوند؟
این مشکلی شناختهشده است که درصورت استفاده از انتخابگر دستگاه سفارشی بهجای انتخابگر دستگاه استاندارد ممکن است رخ دهد. در نسخه ۴.۴.۸ «کیت توسعه نرمافزار Cast» و نسخههای قدیمیتر، اسکن دستگاه خودکار بود. از نسخه
۴.۶.۰، برای شروع شناسایی دستگاه باید بهطور صریح
متد startDiscovery را در کلاس
GCKDiscoveryManager فراخوانی کنید.
دلیل این تغییر این است که پیامواره اجازههای «دسترسی به شبکه محلی» (LNA) پساز اینکه برنامه برای اولینبار اسکن کرد نمایش داده خواهد شد. این کار میتواند باعث شود کادرهای گفتگوی اجازهها در مکانهای تصادفی در برنامهتان نشان داده شود.
توسعهدهندگانی که انتخابگر دستگاه سفارشی برای برنامه خود میسازند باید پیشاز شروع اسکن دستگاه برای اولینبار، میاننویسی یکبارهای ارائه دهند.