Izin dan Penemuan iOS

Aplikasi yang memindai perangkat di jaringan lokal kini akan meminta pengguna dengan dialog izin satu kali untuk menemukan dan terhubung ke perangkat jaringan lokal. Platform Cast menggunakan jaringan lokal untuk menemukan dan mengontrol perangkat Cast, jadi jika pengguna menolak izin, mereka tidak akan dapat melakukan transmisi.

Untuk meningkatkan pengalaman pengguna, kami melakukan beberapa modifikasi UX pada SDK untuk aplikasi yang menggunakan pemilih perangkat standar. Modifikasi UX ini membuat pengguna lebih memahami alasan izin akses jaringan lokal diperlukan, serta cara mengaktifkan transmisi jika akses perangkat jaringan lokal telah dinonaktifkan.

Cast iOS SDK v4.6.0 atau yang lebih baru dapat ditambahkan dengan Swift Package Manager dengan mengikuti penyiapan Swift Package Manager atau didownload secara manual dengan mengikuti penyiapan manual. Rilis ini mencakup perubahan pada mekanisme penemuan yang mendasarinya untuk memungkinkan aplikasi yang dibangun dengan Xcode 12 menemukan perangkat Cast di jaringan. Tombol Transmisi sekarang akan selalu ditampilkan. Jika tidak ada perangkat yang tersedia saat pengguna mengetuk tombol Cast, dialog akan ditampilkan yang memberikan panduan tentang alasan perangkat mungkin tidak tersedia, termasuk informasi tentang cara mengaktifkan kembali izin akses jaringan lokal.

Perubahan Cast SDK

Melakukan transmisi untuk pertama kalinya

Saat pengguna mencoba melakukan Transmisi untuk pertama kalinya, dialog interstitial akses jaringan lokal (LNA) akan muncul untuk menjelaskan alasan akses jaringan lokal diperlukan, diikuti dengan perintah izin akses jaringan lokal iOS yang disediakan Apple. Mockup di bawah menggambarkan alur:

Alur izin akses jaringan lokal

Transmisi tidak tersedia

Mulai SDK pengirim iOS 4.6.0, tombol Cast selalu muncul saat pengguna terhubung ke Wi-Fi. Jika perangkat Transmisi tidak tersedia, mengetuk tombol Transmisi akan memunculkan dialog yang memberi pengguna petunjuk tentang kemungkinan alasan Transmisi tidak tersedia, seperti yang ditunjukkan dalam tiruan di bawah:

Flow dengan Cast tidak tersedia

Mengupdate aplikasi Anda

  1. Tambahkan Cast iOS SDK 4.8.6 ke project Anda

    Jika menggunakan Swift Package Manager, update paket google-cast-ios-sdk ke versi 4.8.6.

    Jika tidak, tarik SDK secara manual.

  2. Tambahkan NSBonjourServices ke Info.plist Anda

    Tentukan NSBonjourServices di Info.plist Anda untuk mengizinkan penemuan jaringan lokal berhasil.

    Anda harus menambahkan _googlecast._tcp dan _<your-app-id>._googlecast._tcp sebagai layanan agar penemuan perangkat berfungsi dengan baik.

    appID adalah receiverID Anda, yang merupakan ID yang sama yang ditentukan di GCKDiscoveryCriteria.

    Perbarui definisi NSBonjourServices contoh berikut dan ganti "ABCD1234" dengan appID Anda.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Tambahkan NSLocalNetworkUsageDescription ke Info.plist

    Sebaiknya sesuaikan pesan yang ditampilkan di dialog Jaringan Lokal dengan menambahkan string izin khusus aplikasi di file Info.plist aplikasi untuk NSLocalNetworkUsageDescription, seperti untuk mendeskripsikan penemuan Cast dan layanan penemuan lainnya, seperti DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    Pesan ini akan muncul sebagai bagian dari dialog Akses Jaringan Lokal iOS seperti yang ditunjukkan dalam tiruan.

    Gambar dialog izin Akses Jaringan Lokal Cast
  4. Merilis ulang aplikasi Anda ke Apple App Store

    Sebaiknya Anda juga merilis ulang aplikasi menggunakan 4.8.6 sesegera mungkin.

Penyesuaian

Inisiasi penemuan perangkat Cast

Secara default, penemuan perangkat transmisi dimulai saat pengguna mengetuk tombol Cast (GCKUICastButton) untuk pertama kalinya. Jika ini adalah pertama kalinya pengguna mencoba menggunakan aplikasi Cast di jaringan lokal, interstisial LNA baru akan muncul, diikuti dengan dialog izin Akses Jaringan Lokal iOS.

Flag baru tersedia untuk memungkinkan Anda mengontrol kapan penemuan perangkat dimulai dan perilaku elemen tertentu dari UX:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Nilai default-nya adalah true. Flag ini hanya berlaku jika flag GCKCastOptions::disableDiscoveryAutostart disetel ke false.

Jika disetel ke true, penemuan perangkat transmisi dimulai saat pengguna mengetuk GCKUICastButton untuk pertama kalinya. Pesan informasi akan ditampilkan kepada pengguna untuk memberi tahu mereka alasan izin jaringan lokal diperlukan. Setelah pesan tersebut, pesan LNA iOS akan ditampilkan. Penemuan perangkat transmisi dimulai setelah pesan dikonfirmasi.

Pada peluncuran Aplikasi berikutnya, GCKUICastButton akan selalu ditampilkan.

Jika disetel ke false, penemuan perangkat akan dimulai berdasarkan nilai flag GCKCastOptions::disableDiscoveryAutostart.

Pertanyaan umum (FAQ)

Apa yang terjadi jika saya merilis ulang aplikasi pengirim Cast dengan Cast SDK v4.4.8 dan Xcode 12?

Aplikasi Anda mungkin tidak dapat menemukan perangkat Cast di jaringan lokal kecuali jika Anda telah mendapatkan hak multicast jaringan dari Apple. Perhatikan bahwa Apple tidak akan memberikan hak siaran multicast hanya untuk tujuan mendukung Cast. Jika Anda berencana untuk mem-build dengan Xcode 12, Anda harus merilis aplikasi dengan Cast 4.6.0.

Apa yang harus saya lakukan untuk mengupdate aplikasi setelah Cast SDK versi baru dirilis?

  • Perbarui Info.plist aplikasi Anda untuk menyertakan deskripsi penggunaan jaringan lokal.
  • Tambahkan NSBonjourServices ke Info.plist aplikasi Anda dan berikan nama layanan Bonjour untuk Cast dan ID aplikasi Anda.
  • Upgrade aplikasi pengirim Anda untuk menggunakan Cast SDK 4.6.0.
  • Rilis ulang aplikasi Anda ke app store Apple.

Mengapa perangkat berhenti muncul di pemilih perangkat kustom setelah saya mengupgrade ke 4.6.0?

Ini adalah masalah umum yang dapat terjadi jika Anda menggunakan pemilih perangkat kustom, bukan pemilih perangkat standar. Pada Cast SDK versi 4.4.8 dan yang lebih lama, pemindaian perangkat dilakukan secara otomatis. Mulai versi 4.6.0, Anda harus memanggil metode startDiscovery secara eksplisit di class GCKDiscoveryManager untuk memulai penemuan perangkat.

Alasan perubahan ini adalah karena dialog izin Akses Jaringan Lokal (LNA) akan muncul setelah aplikasi memindai untuk pertama kalinya. Hal ini dapat menyebabkan dialog izin muncul di tempat acak di aplikasi Anda.

Developer yang membuat pemilih perangkat kustom untuk aplikasi mereka akan diharapkan untuk menyediakan iklan interstisial satu kali sebelum memulai pemindaian perangkat untuk pertama kalinya.