Le applicazioni che cercano dispositivi sulla rete locale ora mostreranno agli utenti una finestra di dialogo di autorizzazione una tantum per trovare e connettersi ai dispositivi della rete locale. La piattaforma Cast utilizza la rete locale per rilevare e controllare i dispositivi Cast, quindi se l'utente nega l'autorizzazione, non potrà trasmettere.
Per migliorare l'esperienza utente, stiamo apportando alcune modifiche all'esperienza utente dell'SDK per le app che utilizzano il selettore di dispositivi standard. Queste modifiche all'esperienza utente rendono più evidente agli utenti il motivo per cui sono necessarie le autorizzazioni di accesso alla rete locale, nonché come attivare la trasmissione se l'accesso ai dispositivi di rete locale è stato disattivato.
L'SDK Cast per iOS 4.6.0 o versioni successive può essere aggiunto con Swift Package Manager seguendo la configurazione di Swift Package Manager o scaricato manualmente seguendo la configurazione manuale. Questa release include modifiche al meccanismo di rilevamento sottostante per consentire alle app create con Xcode 12 di trovare i dispositivi Cast sulla rete. Il pulsante Trasmetti ora dovrebbe essere sempre visualizzato. Se non sono disponibili dispositivi quando l'utente tocca il pulsante Trasmetti, viene visualizzata una finestra di dialogo che fornisce indicazioni sul motivo per cui i dispositivi potrebbero non essere disponibili, incluse informazioni su come riattivare l'autorizzazione di accesso alla rete locale.
Modifiche all'SDK Cast
Trasmissione per la prima volta
La prima volta che un utente tenta di trasmettere, viene visualizzata una finestra di dialogo interstiziale di accesso alla rete locale (LNA) che spiega perché è necessario l'accesso alla rete locale, seguita dalla richiesta di autorizzazioni di accesso alla rete locale di iOS fornita da Apple. I mock-up riportati di seguito illustrano il flusso:

Cast non disponibile
A partire dall'SDK mittente per iOS 4.6.0, il pulsante Trasmetti viene sempre visualizzato quando l'utente è connesso al Wi-Fi. Quando i dispositivi di trasmissione non sono disponibili, se tocchi il pulsante Trasmetti, viene visualizzata una finestra di dialogo che fornisce all'utente suggerimenti sui possibili motivi per cui la trasmissione non è disponibile, come mostrato nei mock-up di seguito:

Aggiornamento dell'app
-
Aggiungi l'SDK Cast per iOS 4.8.6 al tuo progetto
Se utilizzi Swift Package Manager, aggiorna il pacchetto
google-cast-ios-sdkalla versione 4.8.6.In caso contrario, inserisci l'SDK manualmente.
-
Aggiungi
NSBonjourServicesal tuoInfo.plistSpecifica
NSBonjourServicesnel tuoInfo.plistper consentire il rilevamento della rete locale.Per il corretto funzionamento del rilevamento dei dispositivi, devi aggiungere sia
_googlecast._tcpsia_<your-app-id>._googlecast._tcpcome servizi.L'appID è il tuo receiverID, ovvero lo stesso ID definito nel tuo
GCKDiscoveryCriteria.Aggiorna la seguente definizione di
NSBonjourServicese sostituisci "ABCD1234" con il tuo appID. -
Aggiungi
NSLocalNetworkUsageDescriptional tuoInfo.plistTi consigliamo vivamente di personalizzare il messaggio mostrato nel prompt della rete locale aggiungendo una stringa di autorizzazione specifica dell'app nel file
Info.plistdell'app perNSLocalNetworkUsageDescription, ad esempio per descrivere l'individuazione di Cast e altri servizi di individuazione, come DIAL.Questo messaggio verrà visualizzato nella finestra di dialogo di accesso alla rete locale di iOS come mostrato nel mock-up.
-
Ripubblicare l'app sull'Apple App Store
Ti consigliamo inoltre di ripubblicare la tua app utilizzando la versione 4.8.6 il prima possibile.
Personalizzazioni
Avvio del rilevamento del dispositivo di trasmissione
Per impostazione predefinita, la scoperta dei dispositivi di trasmissione viene avviata la prima volta che l'utente tocca
il pulsante Trasmetti (GCKUICastButton). Se è la prima volta che l'utente
tenta di utilizzare l'app Google Home sulla rete locale,
viene visualizzato il nuovo interstitial LNA, seguito dalla finestra di dialogo delle autorizzazioni di accesso alla rete locale iOS.
È disponibile un nuovo flag che ti consente di controllare quando inizia la rilevazione dei dispositivi e il comportamento di determinati elementi dell'esperienza utente:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Il valore predefinito è true. Questo flag è applicabile solo quando il flag
GCKCastOptions::disableDiscoveryAutostart
è impostato su false.
Se impostata su true, la ricerca dei dispositivi di trasmissione inizia quando un utente tocca
GCKUICastButton per la prima volta. All'utente verrà mostrato un messaggio informativo che spiega perché è necessaria l'autorizzazione per la rete locale. Dopo questo messaggio, verrà visualizzato il messaggio LNA per iOS.
La ricerca dei dispositivi di trasmissione inizia dopo la conferma del messaggio.
Nei lanci successivi dell'app, viene sempre visualizzato GCKUICastButton.
Se impostato su false, la ricerca dei dispositivi inizierà in base al valore del
flag
GCKCastOptions::disableDiscoveryAutostart.
Domande frequenti
Cosa succede se ripubblico la mia app mittente Cast con Cast SDK v4.4.8 e Xcode 12?
La tua app potrebbe non essere in grado di rilevare i dispositivi di trasmissione sulla rete locale a meno che tu non abbia ottenuto un diritto di multicast di rete da Apple. Tieni presente che Apple non concederà diritti di multicast esclusivamente per supportare Cast. Se prevedi di creare con Xcode 12, devi rilasciare la tua app con Cast 4.6.0.
Cosa devo fare per aggiornare la mia app una volta rilasciata la nuova versione dell'SDK Cast?
- Aggiorna le
Info.plistdella tua app per includere una descrizione dell'utilizzo della rete locale. - Aggiungi
NSBonjourServicesaInfo.plistdella tua app e fornisci i nomi dei servizi Bonjour per Cast e l'ID app. - Esegui l'upgrade dell'app mittente per utilizzare Cast SDK 4.6.0.
- Rilascia di nuovo l'app sull'App Store Apple.
Perché i dispositivi non vengono più visualizzati nel selettore di dispositivi personalizzato dopo l'upgrade alla versione 4.6.0?
Si tratta di un problema noto che può verificarsi se utilizzi un selettore di dispositivi personalizzato
anziché quello standard. Nella versione 4.4.8 dell'SDK Cast e versioni precedenti, la scansione dei dispositivi era automatica. A partire dalla versione
4.6.0, dovrai chiamare esplicitamente il metodo startDiscovery
nella classe
GCKDiscoveryManager per avviare l'individuazione dei dispositivi.
Il motivo di questa modifica è che la richiesta di autorizzazione per l'accesso alla rete locale (LNA) viene visualizzata dopo la prima scansione dell'app. Ciò potrebbe comportare la visualizzazione delle finestre di dialogo delle autorizzazioni in posizioni casuali nella tua app.
Gli sviluppatori che creano un selettore di dispositivi personalizzato per la propria app dovranno fornire un interstitial una tantum prima di avviare la scansione dei dispositivi per la prima volta.