Aplikacje, które skanują sieć lokalną w poszukiwaniu urządzeń, będą teraz wyświetlać użytkownikom jednorazowe okno uprawnień, aby znaleźć urządzenia w sieci lokalnej i połączyć się z nimi. Platforma Cast korzysta z sieci lokalnej do wykrywania urządzeń Cast i sterowania nimi, więc jeśli użytkownik odmówi uprawnień, nie będzie mógł przesyłać treści.
Aby poprawić wrażenia użytkowników, wprowadzamy pewne zmiany w interfejsie pakietu SDK w przypadku aplikacji, które korzystają ze standardowego selektora urządzeń. Te zmiany w interfejsie użytkownika sprawiają, że użytkownicy lepiej rozumieją, dlaczego potrzebne są uprawnienia dostępu do sieci lokalnej, oraz jak włączyć przesyłanie, jeśli dostęp do urządzenia w sieci lokalnej został wyłączony.
Pakiet Cast iOS SDK w wersji 4.6.0 lub nowszej można dodać za pomocą narzędzia Swift Package Manager, postępując zgodnie z instrukcjami konfiguracji narzędzia Swift Package Manager, lub pobrać ręcznie, postępując zgodnie z instrukcjami konfiguracji ręcznej. Ta wersja zawiera zmiany w podstawowym mechanizmie wykrywania, które umożliwiają aplikacjom utworzonym za pomocą Xcode 12 znajdowanie urządzeń Cast w sieci. Przycisk Cast powinien być teraz zawsze widoczny. Jeśli po kliknięciu przycisku Cast nie są dostępne żadne urządzenia, wyświetli się okno z informacjami o tym, dlaczego urządzenia mogą być niedostępne, oraz o tym, jak ponownie włączyć uprawnienia dostępu do sieci lokalnej.
Zmiany w pakiecie Cast SDK
Przesyłanie po raz pierwszy
Gdy użytkownik po raz pierwszy spróbuje przesłać treści, pojawi się okno dostępu do sieci lokalnej (LNA) z wyjaśnieniem, dlaczego jest on potrzebny, a następnie prośba o przyznanie uprawnień dostępu do sieci lokalnej na iOS od Apple. Poniższe makiety ilustrują ten proces:

Przesyłanie jest niedostępne
Od wersji 4.6.0 pakietu SDK nadawcy na iOS przycisk Cast jest zawsze widoczny, gdy użytkownik jest połączony z Wi-Fi. Gdy urządzenia przesyłające są niedostępne, kliknięcie przycisku Cast powoduje wyświetlenie okna z informacjami o możliwych przyczynach niedostępności, jak pokazano na poniższych makietach:

Aktualizowanie aplikacji
-
Dodawanie do projektu pakietu Cast iOS SDK 4.8.6
Jeśli używasz Swift Package Managera, zaktualizuj pakiet
google-cast-ios-sdkdo wersji 4.8.6.W przeciwnym razie pobierz pakiet SDK ręcznie.
-
Dodawanie
NSBonjourServicesdoInfo.plistAby umożliwić wykrywanie sieci lokalnej, podaj
NSBonjourServiceswInfo.plist.Aby wykrywanie urządzeń działało prawidłowo, musisz dodać jako usługi zarówno
_googlecast._tcp, jak i_<your-app-id>._googlecast._tcp.appID to identyfikator odbiornika, który jest taki sam jak identyfikator zdefiniowany w
GCKDiscoveryCriteria.Zaktualizuj podaną niżej przykładową definicję
NSBonjourServicesi zastąp „ABCD1234” identyfikatorem aplikacji. -
Dodaj
NSLocalNetworkUsageDescriptiondoInfo.plistZdecydowanie zalecamy dostosowanie wiadomości wyświetlanej w prośbie o dostęp do sieci lokalnej przez dodanie ciągu uprawnień aplikacji w pliku
Info.plistaplikacji dlaNSLocalNetworkUsageDescription, aby opisać wykrywanie Cast i inne usługi wykrywania, takie jak DIAL.Ten komunikat pojawi się w oknie dostępu do sieci lokalnej na iOS, jak pokazano na makiecie.
-
Ponowne opublikowanie aplikacji w Apple App Store
Zalecamy jak najszybsze ponowne opublikowanie aplikacji przy użyciu wersji 4.8.6.
Dostosowania
Rozpoczęcie wykrywania urządzeń Cast
Domyślnie wykrywanie urządzeń Cast jest inicjowane, gdy użytkownik po raz pierwszy kliknie przycisk Cast (GCKUICastButton). Jeśli użytkownik po raz pierwszy próbuje użyć aplikacji Cast w sieci lokalnej, pojawi się nowa reklama pełnoekranowa LNA, a następnie okno uprawnień dostępu do sieci lokalnej na iOS.
Dostępna jest nowa flaga, która pozwala kontrolować, kiedy rozpoczyna się wykrywanie urządzeń, oraz zachowanie niektórych elementów interfejsu UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Wartością domyślną jest true. Ta flaga ma zastosowanie tylko wtedy, gdy flaga GCKCastOptions::disableDiscoveryAutostart jest ustawiona na false.
Jeśli ustawisz wartość true, wykrywanie urządzeń przesyłających rozpocznie się, gdy użytkownik po raz pierwszy kliknie GCKUICastButton. Użytkownik zobaczy komunikat z informacją, dlaczego potrzebne jest uprawnienie do sieci lokalnej. Po tej wiadomości wyświetli się wiadomość dotycząca ograniczonego dostępu do reklam na iOS.
Wykrywanie urządzeń przesyłających rozpocznie się po potwierdzeniu wiadomości.
W kolejnych uruchomieniach aplikacji zawsze wyświetla się GCKUICastButton.
Jeśli zasada jest ustawiona na false, wykrywanie urządzeń rozpocznie się na podstawie wartości flagi GCKCastOptions::disableDiscoveryAutostart.
Najczęstsze pytania
Co się stanie, jeśli ponownie opublikuję aplikację nadawcy Cast z pakietem Cast SDK w wersji 4.4.8 i Xcode 12?
Twoja aplikacja może nie być w stanie wykrywać urządzeń Cast w sieci lokalnej, chyba że masz od Apple uprawnienia do korzystania z sieci multicast. Pamiętaj, że Apple nie przyzna uprawnień do multiemisji wyłącznie na potrzeby obsługi Cast. Jeśli planujesz tworzyć aplikacje za pomocą Xcode 12, opublikuj aplikację z Cast 4.6.0.
Co muszę zrobić, aby zaktualizować aplikację po opublikowaniu nowej wersji Cast SDK?
- Zaktualizuj plik
Info.plistaplikacji, aby zawierał opis korzystania z sieci lokalnej. - Dodaj
NSBonjourServicesdo plikuInfo.plistaplikacji i podaj nazwy usług Bonjour dla Cast oraz identyfikator aplikacji. - Zaktualizuj aplikację nadawcy, aby korzystać z pakietu Cast SDK 4.6.0.
- Ponownie opublikuj aplikację w sklepie Apple App Store.
Dlaczego po przejściu na wersję 4.6.0 urządzenia przestały się wyświetlać w niestandardowym selektorze urządzeń?
Jest to znany problem, który może wystąpić, jeśli używasz niestandardowego selektora urządzeń zamiast standardowego. W pakiecie Cast SDK w wersji 4.4.8 i starszych skanowanie urządzeń odbywało się automatycznie. Począwszy od wersji 4.6.0, aby zainicjować wykrywanie urządzeń, musisz wyraźnie wywołać metodę startDiscovery w klasie
GCKDiscoveryManager.
Powodem tej zmiany jest to, że prośba o uprawnienia dostępu do sieci lokalnej (LNA) pojawi się po pierwszym skanowaniu aplikacji. Może to spowodować, że okna uprawnień będą się pojawiać w losowych miejscach w aplikacji.
Deweloperzy, którzy tworzą niestandardowy selektor urządzeń dla swojej aplikacji, będą musieli wyświetlić jednorazową reklamę pełnoekranową przed pierwszym rozpoczęciem skanowania urządzeń.