ตั้งแต่ iOS 14 เป็นต้นไป ระบบปฏิบัติการจะบังคับใช้ข้อจำกัดและสิทธิ์ใหม่ซึ่งส่งผลต่อประสบการณ์การใช้งาน Cast ของผู้ใช้ และการเปลี่ยนแปลงนี้จะส่งผลต่อวิธีสร้าง Cast SDK ในแอปด้วย หากต้องการให้แอปยังคงทำงานร่วมกับ Cast ได้บน iOS เวอร์ชันล่าสุด คุณต้องอัปเดตเพื่อจัดการกับการเปลี่ยนแปลงสิทธิ์เหล่านี้
iOS 14
นักพัฒนาแอปควรอัปเดตแอปส่ง Cast ของ iOS เป็น Google Cast SDK v4.6.0 ขึ้นไป เวอร์ชันเหล่านี้รองรับ iOS 14 และข้อกําหนดของ iOS 14
ตั้งแต่ iOS 14 เป็นต้นไป แอปพลิเคชันที่สแกนหาอุปกรณ์ในเครือข่ายภายในจะแสดงกล่องโต้ตอบสิทธิ์แบบครั้งเดียวเพื่อค้นหาและเชื่อมต่อกับอุปกรณ์ในเครือข่ายภายใน แพลตฟอร์ม Cast ใช้เครือข่ายภายในเพื่อค้นหาและควบคุมอุปกรณ์ Cast ดังนั้นหากผู้ใช้ปฏิเสธสิทธิ์ ผู้ใช้จะแคสต์ไม่ได้
เรากําลังทําการแก้ไข UX บางอย่างใน SDK สำหรับแอปที่ใช้เครื่องมือเลือกอุปกรณ์มาตรฐานเพื่อปรับปรุงประสบการณ์ของผู้ใช้ การปรับเปลี่ยน UX เหล่านี้ทำให้ผู้ใช้ทราบเหตุผลที่ต้องมีสิทธิ์เข้าถึงเครือข่ายภายในอย่างชัดเจนมากขึ้น รวมถึงวิธีเปิดใช้การแคสต์หากมีการปิดใช้สิทธิ์เข้าถึงอุปกรณ์เครือข่ายภายใน
แอปที่สร้างด้วย Cast SDK เวอร์ชันที่ใช้ v4.4.8 หรือเก่ากว่าจะยังคงทำงานต่อไป ตราบใดที่สร้างขึ้นด้วย Xcode 11.7 หรือเก่ากว่า หากคุณกำลังสร้างแอปสำหรับ iOS 14 ด้วย Xcode 12 ขึ้นไป เราขอแนะนำให้อัปเดตเป็น Cast SDK เวอร์ชัน 4.6.0 ขึ้นไปเพื่อให้แอป Cast ทำงานได้อย่างถูกต้องต่อไป
คุณสามารถดาวน์โหลด Cast iOS SDK เวอร์ชัน 4.6.0 ขึ้นไปด้วย CocoaPods โดยทําตามการตั้งค่า CocoaPods หรือจะดาวน์โหลดด้วยตนเองโดยทําตามการตั้งค่าด้วยตนเองก็ได้ เวอร์ชันนี้รวมถึงการเปลี่ยนแปลงกลไกการค้นพบพื้นฐานเพื่ออนุญาตให้แอปที่สร้างด้วย Xcode 12 ค้นหาอุปกรณ์ Cast ในเครือข่ายได้ ตอนนี้ปุ่มแคสต์จะแสดงอยู่เสมอ หากไม่มีอุปกรณ์ใดพร้อมใช้งานเมื่อผู้ใช้แตะปุ่มแคสต์ กล่องโต้ตอบจะปรากฏขึ้นพร้อมคำแนะนำเกี่ยวกับสาเหตุที่อุปกรณ์อาจไม่พร้อมใช้งาน รวมถึงข้อมูลเกี่ยวกับวิธีเปิดใช้สิทธิ์เข้าถึงเครือข่ายภายในอีกครั้ง
การเปลี่ยนแปลง Cast SDK
การแคสต์ครั้งแรก
เมื่อผู้ใช้พยายามแคสต์เป็นครั้งแรก กล่องโต้ตอบโฆษณาคั่นระหว่างหน้าสำหรับการเข้าถึงเครือข่าย LAN (Local Network Access หรือ LNA) จะปรากฏขึ้นเพื่ออธิบายเหตุผลที่จำเป็นต้องเข้าถึงเครือข่าย LAN ตามด้วยข้อความแจ้งสิทธิ์เข้าถึงเครือข่าย LAN ของ iOS ที่ Apple เป็นผู้ให้ ภาพจำลองด้านล่างแสดงขั้นตอนต่างๆ
Cast ไม่พร้อมใช้งาน
ตั้งแต่ iOS Sender SDK 4.6.0 เป็นต้นไป ปุ่มแคสต์จะปรากฏขึ้นเสมอเมื่อผู้ใช้เชื่อมต่อกับ Wi-Fi เมื่ออุปกรณ์แคสต์ไม่พร้อมใช้งาน การแตะปุ่มแคสต์จะเปิดกล่องโต้ตอบที่ให้คำแนะนำแก่ผู้ใช้เกี่ยวกับสาเหตุที่เป็นไปได้ที่แคสต์ไม่พร้อมใช้งาน ดังที่แสดงในภาพตัวอย่างด้านล่าง
การอัปเดตแอปใน iOS 14
-
เพิ่ม Cast iOS SDK 4.8.3 ลงในโปรเจ็กต์
หากใช้ CocoaPods ให้ใช้
pod update
เพื่อเพิ่ม SDK 4.8.3 ลงในโปรเจ็กต์ -
เพิ่ม
NSBonjourServices
ลงในInfo.plist
ระบุ
NSBonjourServices
ในInfo.plist
เพื่อให้การค้นพบเครือข่ายภายในสําเร็จใน iOS 14คุณจะต้องเพิ่มทั้ง
_googlecast._tcp
และ_<your-app-id>._googlecast._tcp
เป็นบริการเพื่อให้การค้นพบอุปกรณ์ทำงานได้อย่างถูกต้องappID คือ receiverID ซึ่งเป็นรหัสเดียวกับที่กําหนดไว้ใน
GCKDiscoveryCriteria
อัปเดตคำนิยาม
NSBonjourServices
ของตัวอย่างต่อไปนี้ และแทนที่ "ABCD1234" ด้วยรหัสแอปของคุณ -
เพิ่ม
NSLocalNetworkUsageDescription
ลงในInfo.plist
เราขอแนะนําอย่างยิ่งให้คุณปรับแต่งข้อความที่แสดงในพรอมต์เครือข่ายภายในด้วยการเพิ่มสตริงสิทธิ์เฉพาะแอปในไฟล์
Info.plist
ของแอปสําหรับNSLocalNetworkUsageDescription
เช่น เพื่ออธิบายการค้นพบ Cast และบริการการค้นพบอื่นๆ เช่น DIALข้อความนี้จะปรากฏเป็นส่วนหนึ่งของกล่องโต้ตอบการเข้าถึงเครือข่าย LAN ของ iOS ดังที่แสดงในภาพตัวอย่าง
-
เผยแพร่แอปของคุณอีกครั้งใน Apple App Store
นอกจากนี้ เราขอแนะนำให้คุณเผยแพร่แอปอีกครั้งโดยใช้ 4.8.3 โดยเร็วที่สุด
การปรับแต่ง
การเริ่มต้นการค้นหาอุปกรณ์แคสต์
โดยค่าเริ่มต้น ระบบจะเริ่มการค้นหาอุปกรณ์แคสต์เมื่อผู้ใช้แตะปุ่มแคสต์ (GCKUICastButton
) เป็นครั้งแรก หากนี่เป็นการใช้แอปแคสต์ในเครือข่ายภายในหลังอัปเกรดเป็น iOS 14 เป็นครั้งแรก โฆษณาคั่นระหว่างหน้า LNA ใหม่จะปรากฏขึ้น ตามด้วยกล่องโต้ตอบสิทธิ์การเข้าถึงเครือข่ายภายในของ iOS
มี Flag ใหม่ให้คุณควบคุมเวลาเริ่มต้นการค้นหาอุปกรณ์และลักษณะการทำงานขององค์ประกอบบางอย่างของ UX ดังนี้
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
ค่าเริ่มต้นคือ true
Flag นี้จะมีผลก็ต่อเมื่อตั้งค่า Flag
GCKCastOptions::disableDiscoveryAutostart
เป็น false
หากตั้งค่าเป็น true
การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นเมื่อผู้ใช้แตะ GCKUICastButton
เป็นครั้งแรก ระบบจะแสดงข้อความแจ้งให้ผู้ใช้ทราบถึงเหตุผลที่ต้องใช้สิทธิ์เครือข่ายภายใน หลังจากข้อความดังกล่าว ระบบจะแสดงข้อความ LNA ของ iOS 14
การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นหลังจากที่รับทราบข้อความแล้ว
GCKUICastButton
จะแสดงทุกครั้งที่เปิดแอป
หากตั้งค่าเป็น false
การค้นหาอุปกรณ์จะเริ่มขึ้นโดยอิงตามค่าของ
flag
GCKCastOptions::disableDiscoveryAutostart
คำถามที่พบบ่อย
จะเกิดอะไรขึ้นหากฉันเผยแพร่แอปส่ง Cast อีกครั้งด้วย Cast SDK v4.4.8 และ Xcode 12
แอปของคุณอาจไม่พบอุปกรณ์แคสต์ในเครือข่ายภายใน เว้นแต่คุณจะได้รับสิทธิ์มัลติแคสต์ของเครือข่ายจาก Apple โปรดทราบว่า Apple จะไม่ให้สิทธิ์มัลติแคสต์เพื่อวัตถุประสงค์ในการสนับสนุน Cast เพียงอย่างเดียว หากวางแผนที่จะสร้างด้วย Xcode 12 คุณควรเผยแพร่แอปด้วย Cast 4.6.0
หากฉันเผยแพร่แอปอีกครั้งด้วย Cast SDK เวอร์ชันใหม่ ผู้ใช้ที่ใช้ iOS 13 หรือเวอร์ชันก่อนหน้าจะพบประสบการณ์การใช้งานอย่างไร
ผู้ใช้จะยังคงเห็นประสบการณ์การใช้งานแบบเดิมที่เคยได้รับก่อนการเผยแพร่แอปอีกครั้ง การเปลี่ยนแปลงที่ผู้ใช้มองเห็นจะจำกัดไว้สำหรับผู้ใช้ที่ใช้ iOS 14 เท่านั้น
ฉันต้องทำอย่างไรเพื่ออัปเดตแอปเมื่อมีการเผยแพร่ Cast SDK เวอร์ชันใหม่
- อัปเดต
Info.plist
ของแอปให้รวมคำอธิบายการใช้งานเครือข่ายภายใน - เพิ่ม
NSBonjourServices
ลงในInfo.plist
ของแอป แล้วระบุชื่อบริการ Bonjour สำหรับ Cast และรหัสแอป - อัปเกรดแอปผู้ส่งเพื่อใช้ Cast SDK 4.6.0
- เผยแพร่แอปของคุณอีกครั้งใน App Store ของ Apple
ทำไมอุปกรณ์จึงหยุดแสดงในเครื่องมือเลือกอุปกรณ์ที่กําหนดเองหลังจากฉันอัปเกรดเป็น 4.6.0
ปัญหานี้เป็นสิ่งที่ทราบกันดีว่าอาจเกิดขึ้นได้หากคุณใช้เครื่องมือเลือกอุปกรณ์ที่กําหนดเองแทนเครื่องมือเลือกอุปกรณ์มาตรฐาน ใน Cast SDK เวอร์ชัน 4.4.8 และเวอร์ชันก่อนหน้า การสแกนอุปกรณ์จะเป็นแบบอัตโนมัติ ตั้งแต่เวอร์ชัน 4.6.0 เป็นต้นไป คุณจะต้องเรียกใช้เมธอด startDiscovery
อย่างชัดเจนในคลาส
GCKDiscoveryManager
เพื่อเริ่มการค้นหาอุปกรณ์
เหตุผลของการเปลี่ยนแปลงนี้เนื่องมาจากข้อความแจ้งสิทธิ์การเข้าถึงเครือข่ายภายใน (LNA) จะปรากฏขึ้นหลังจากที่แอปสแกนเป็นครั้งแรก ซึ่งอาจส่งผลให้กล่องโต้ตอบสิทธิ์ปรากฏขึ้นแบบสุ่มในแอป
นักพัฒนาแอปที่สร้างเครื่องมือเลือกอุปกรณ์ที่กําหนดเองสําหรับแอปของตนจะต้องแสดงโฆษณาคั่นระหว่างหน้าแบบครั้งเดียวก่อนเริ่มการสแกนอุปกรณ์เป็นครั้งแรกใน iOS 14
iOS 13
iOS 13 มีการเปิดตัวข้อกําหนดสิทธิ์ใหม่ซึ่งส่งผลต่อแอปที่ใช้ Google Cast SDK
ตั้งแต่ Google Cast SDK v4.4.3 เป็นต้นไป จะมี SDK เพิ่มเติมที่ไม่ต้องขอสิทธิ์ Bluetooth® ซึ่งพร้อมใช้งานทั้งในเว็บไซต์ของนักพัฒนาแอปและใน google-cast-sdk-no-bluetooth
Cocoapods เวอร์ชันใหม่
รายละเอียดแอป
รายละเอียดต่อไปนี้ขึ้นอยู่กับเวอร์ชันของ iOS SDK ที่คุณใช้อยู่
แอปที่สร้างด้วย iOS 12 SDK หรือเวอร์ชันก่อนหน้า
- แนะนำให้ดำเนินการ ประสิทธิภาพการตรวจหาอุปกรณ์อาจลดลงเมื่อทำงานใน iOS 13 แต่จะยังคงใช้งานได้ เราขอแนะนําอย่างยิ่งให้นักพัฒนาแอปอัปเกรดเป็น Cast SDK v4.4.4 หากมี
- iOS 13 จะแจ้งให้ผู้ใช้ให้สิทธิ์บลูทูธแก่แอป
แอปที่สร้างด้วย SDK ของ iOS 13
- ขอให้ดำเนินการ: อัปเดตเป็น Cast SDK 4.4.4 ไม่เช่นนั้นปุ่มแคสต์อาจไม่ปรากฏหากผู้ใช้ไม่ให้สิทธิ์เข้าถึงตำแหน่ง คุณต้องอัปเกรดเป็น Cast SDK 4.4.4 เพื่อให้ได้รับประสบการณ์การแคสต์ที่เชื่อถือได้ใน iOS 13