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

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

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