הרשאות וגילויים למכשירי iOS

אפליקציות שסורקות מכשירים ברשת המקומית יציגו למשתמשים תיבת דו-שיח של הרשאות חד-פעמיות כדי למצוא מכשירים ברשת המקומית ולהתחבר אליהם. פלטפורמת Cast משתמשת ברשת המקומית כדי למצוא מכשירי Cast ולשלוט בהם. לכן, אם המשתמש לא נותן הרשאה, הוא לא יכול להפעיל Cast.

כדי לשפר את חוויית המשתמש, אנחנו מבצעים כמה שינויים ב-UX של ה-SDK באפליקציות שמשתמשות בבורר המכשירים הרגיל. השינויים האלה בממשק המשתמש מבהירים למשתמשים למה נדרשות הרשאות גישה לרשת המקומית, ואיך להפעיל את ההעברה אם הגישה למכשיר ברשת המקומית מושבתת.

אפשר להוסיף את Cast iOS SDK בגרסה 4.6.0 ואילך באמצעות Swift Package Manager, לפי ההוראות להגדרה של Swift Package Manager, או להוריד אותו ידנית לפי ההוראות להגדרה ידנית. הגרסה הזו כוללת שינויים במנגנון הגילוי הבסיסי, כדי לאפשר לאפליקציות שנוצרו באמצעות Xcode 12 למצוא מכשירי Cast ברשת. עכשיו הכפתור להפעלת Cast אמור להופיע תמיד. אם אין מכשירים זמינים כשהמשתמש לוחץ על הכפתור להפעלת Cast, תוצג תיבת דו-שיח עם הסבר למה יכול להיות שאין מכשירים זמינים, כולל מידע על איך להפעיל מחדש את הרשאת הגישה לרשת המקומית.

שינויים ב-Cast SDK

הפעלת Cast בפעם הראשונה

בפעם הראשונה שמשתמש ינסה להפעיל Cast, תופיע תיבת דו-שיח מעבר של גישה לרשת המקומית (LNA) שתסביר למה נדרשת גישה לרשת המקומית, ואחריה תופיע בקשת ההרשאות לגישה לרשת המקומית ב-iOS שסופקה על ידי Apple. הדוגמאות הבאות ממחישות את התהליך:

תהליך הרשאות הגישה לרשת המקומית

אי אפשר להפעיל Cast

החל מגרסה 4.6.0 של SDK לשליחה ב-iOS, הכפתור להפעלת Cast תמיד מופיע כשהמשתמש מחובר ל-Wi-Fi. כשמכשירי Cast לא זמינים, לחיצה על הכפתור להפעלת Cast פותחת תיבת דו-שיח שבה מוצגות למשתמש סיבות אפשריות לכך ש-Cast לא זמין, כמו שמוצג בתמונות הבאות:

התהליך עם Cast לא זמין

עדכון האפליקציה

  1. הוספת Cast iOS SDK 4.8.6 לפרויקט

    אם משתמשים ב- 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

כברירת מחדל, גילוי מכשירי Cast מתחיל בפעם הראשונה שהמשתמש לוחץ על הכפתור להפעלת Cast (GCKUICastButton). אם זו הפעם הראשונה שהמשתמש מנסה להשתמש באפליקציית Cast ברשת המקומית, יופיע מסך המעבר החדש של LNA, ואחריו תיבת הדו-שיח של הרשאות הגישה לרשת המקומית ב-iOS.

יש אפשרות חדשה שמאפשרת לכם לקבוע מתי יתחיל גילוי המכשירים ואת ההתנהגות של רכיבים מסוימים בממשק המשתמש:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

ערך ברירת המחדל הוא true. הדגל הזה רלוונטי רק כשהדגל GCKCastOptions::disableDiscoveryAutostart מוגדר לערך false.

אם המדיניות מוגדרת לערך true, גילוי מכשירי Cast מתחיל כשמשתמש מקיש על GCKUICastButton בפעם הראשונה. תוצג למשתמש הודעה עם הסבר למה נדרשת הרשאה לרשת המקומית. אחרי ההודעה הזו, תוצג הודעת ה-LNA ב-iOS. החיפוש של מכשיר Cast מתחיל אחרי שמאשרים את ההודעה.

בהפעלות הבאות של האפליקציה, תמיד מוצג GCKUICastButton.

אם המדיניות מוגדרת לערך false, גילוי המכשירים יתחיל על סמך הערך של הדגל GCKCastOptions::disableDiscoveryAutostart.

שאלות נפוצות

מה יקרה אם אפרסם מחדש את אפליקציית השליחה של Cast עם Cast SDK בגרסה 4.4.8 ו-Xcode 12?

יכול להיות שהאפליקציה לא תוכל לגלות מכשירי Cast ברשת המקומית, אלא אם קיבלתם מ-Apple הרשאת multicast ברשת. חשוב לזכור ש-Apple לא תעניק הרשאות multicast רק כדי לתמוך ב-Cast. אם אתם מתכננים לפתח באמצעות Xcode 12, כדאי לפרסם את האפליקציה עם Cast 4.6.0.

מה צריך לעשות כדי לעדכן את האפליקציה אחרי שהגרסה החדשה של Cast SDK תושק?

  • צריך לעדכן את Info.plist של האפליקציה כך שיכלול תיאור של השימוש ברשת המקומית.
  • מוסיפים את NSBonjourServices לקובץ Info.plist של האפליקציה ומציינים את שמות שירותי Bonjour ל-Cast ואת מזהה האפליקציה.
  • משדרגים את אפליקציית השליחה לגרסה 4.6.0 של Cast SDK.
  • מפרסמים מחדש את האפליקציה ב-App Store של אפל.

למה המכשירים הפסיקו להופיע בבורר המכשירים המותאם אישית שלי אחרי ששדרגתי לגרסה 4.6.0?

זו בעיה מוכרת שיכולה לקרות אם משתמשים בבורר מכשירים מותאם אישית במקום בבורר המכשירים הרגיל. בגרסה 4.4.8 של Cast SDK ובגרסאות קודמות, סריקת המכשירים הייתה אוטומטית. החל מגרסה 4.6.0, צריך להפעיל באופן מפורש את השיטה startDiscovery במחלקה GCKDiscoveryManager כדי להתחיל את זיהוי המכשירים.

הסיבה לשינוי הזה היא שההנחיה למתן הרשאת גישה לרשת המקומית (LNA) תופיע אחרי שהאפליקציה תבצע סריקה בפעם הראשונה. כתוצאה מכך, תיבות דו-שיח של הרשאות עלולות להופיע במקומות אקראיים באפליקציה.

מפתחים שיוצרים כלי מותאם אישית לבחירת מכשירים באפליקציה שלהם יצטרכו להציג מודעת מעברון חד-פעמית לפני שהם מתחילים לסרוק מכשירים בפעם הראשונה.