ตั้งแต่ iOS 14 เป็นต้นไป ระบบปฏิบัติการจะบังคับใช้ข้อจำกัดและสิทธิ์ใหม่ๆ ซึ่งส่งผลต่อประสบการณ์ของผู้ใช้ Cast และยังส่งผลต่อวิธีสร้าง Cast SDK ในแอปอีกด้วย หากต้องการให้แอปรักษาฟังก์ชันการแคสต์โดยใช้ iOS เวอร์ชันล่าสุด คุณต้องทำการอัปเดตเพื่อจัดการการเปลี่ยนแปลงสิทธิ์เหล่านี้
iOS 14
นักพัฒนาซอฟต์แวร์ควรอัปเดตแอปผู้ส่ง iOS Cast เป็น Google Cast SDK เวอร์ชัน 4.6.0 ขึ้นไป เวอร์ชันเหล่านี้รองรับ iOS 14 และข้อกําหนดของ iOS
ตั้งแต่ iOS 14 เป็นต้นไป แอปพลิเคชันที่สแกนหาอุปกรณ์ในเครือข่ายภายในจะแสดงข้อความแจ้งผู้ใช้ด้วยกล่องโต้ตอบสิทธิ์แบบครั้งเดียวเพื่อค้นหาและเชื่อมต่อกับอุปกรณ์เครือข่ายภายใน แพลตฟอร์ม 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 v4.6.0 ขึ้นไปได้ด้วย CocoaPods โดยทำตามการตั้งค่า CocoaPods หรือทำตามการตั้งค่าด้วยตนเองด้วยตนเอง รุ่นนี้ มีการเปลี่ยนแปลงกลไกการค้นพบที่สำคัญเพื่อให้แอป ที่สร้างด้วย Xcode 12 ค้นหาอุปกรณ์แคสต์ในเครือข่ายได้ ตอนนี้ปุ่ม "แคสต์" ควรจะแสดงเสมอ หากไม่มีอุปกรณ์พร้อมใช้งานเมื่อผู้ใช้แตะปุ่ม "แคสต์" กล่องโต้ตอบจะปรากฏขึ้นเพื่อแนะนำสาเหตุที่อุปกรณ์อาจไม่พร้อมใช้งาน รวมถึงข้อมูลเกี่ยวกับวิธีเปิดใช้สิทธิ์เข้าถึงเครือข่าย LAN อีกครั้ง
การเปลี่ยนแปลง Cast SDK
การแคสต์ครั้งแรก
ครั้งแรกที่ผู้ใช้พยายามแคสต์ กล่องโต้ตอบการเข้าถึงระหว่างเครือข่ายภายใน (LNA) จะปรากฏขึ้นเพื่ออธิบายเหตุผลที่จำเป็นต้องมีการเข้าถึงเครือข่ายภายใน ตามด้วยข้อความแจ้งสิทธิ์การเข้าถึงเครือข่าย LAN จาก Apple ภาพจำลองด้านล่างแสดงให้เห็นลักษณะการเคลื่อนไหว
แคสต์ไม่พร้อมใช้งาน
สำหรับ iOS Sender SDK 4.6.0 เป็นต้นไป ปุ่ม "แคสต์" จะปรากฏตลอดเวลาเมื่อผู้ใช้เชื่อมต่อกับ Wi-Fi เมื่ออุปกรณ์แคสต์ไม่พร้อมใช้งาน การแตะปุ่ม "แคสต์" จะแสดงกล่องโต้ตอบที่มีคำแนะนำผู้ใช้เกี่ยวกับสาเหตุที่เป็นไปได้ที่ Cast ไม่พร้อมใช้งาน ดังที่แสดงในภาพจำลองด้านล่าง
การอัปเดตแอปใน iOS 14
-
เพิ่ม Cast iOS SDK 4.8.1 ลงในโปรเจ็กต์ของคุณ
หากใช้ CocoaPods ให้ใช้
pod update
เพื่อเพิ่ม SDK 4.8.1 ในโปรเจ็กต์ของคุณไม่เช่นนั้น ให้ ดึง SDK ด้วยตนเอง
-
เพิ่ม
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
เช่น เพื่ออธิบายการค้นพบแคสต์และบริการค้นหาอื่นๆ อย่างเช่น การโทรข้อความนี้จะปรากฏเป็นส่วนหนึ่งของกล่องโต้ตอบการเข้าถึงเครือข่าย LAN ของ iOS ดังที่แสดงในภาพจำลอง
-
เผยแพร่แอปใน Apple App Store อีกครั้ง
เราขอแนะนำให้คุณเปิดตัวแอปอีกครั้งโดยใช้ 4.8.1 โดยเร็วที่สุดด้วย
การปรับแต่ง
การเริ่มต้นการค้นหาอุปกรณ์แคสต์
โดยค่าเริ่มต้น การค้นหาอุปกรณ์แคสต์จะเริ่มขึ้นในครั้งแรกที่ผู้ใช้แตะปุ่ม "แคสต์" (GCKUICastButton
) หากนี่เป็นครั้งแรกที่ผู้ใช้พยายามใช้แอป Cast บนเครือข่ายภายในหลังจากอัปเกรดเป็น iOS 14 โฆษณาคั่นระหว่างหน้า LNA ใหม่จะปรากฏขึ้น ตามด้วยกล่องโต้ตอบสิทธิ์การเข้าถึงเครือข่ายในพื้นที่ของ iOS
แฟล็กใหม่พร้อมใช้งานแล้วสำหรับให้คุณควบคุมเวลาที่การค้นหาอุปกรณ์จะเริ่มต้น และลักษณะการทำงานขององค์ประกอบบางอย่างของ UX ดังนี้
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
ค่าเริ่มต้นคือ true
แฟล็กนี้จะใช้ได้เฉพาะเมื่อตั้งค่าแฟล็ก GCKCastOptions::disableDiscoveryAutostart
เป็น false
หากตั้งค่าเป็น true
การค้นพบอุปกรณ์แคสต์จะเริ่มขึ้นเมื่อผู้ใช้แตะ GCKUICastButton
เป็นครั้งแรก ระบบจะแสดงข้อความแจ้งแก่ผู้ใช้เพื่อบอกให้ผู้ใช้ทราบว่าเหตุใดจึงต้องใช้สิทธิ์เครือข่ายภายใน หลังจากข้อความดังกล่าว ข้อความ iOS 14 LNA จะแสดงขึ้นมา
การค้นหาอุปกรณ์แคสต์จะเริ่มต้นหลังจากที่รับทราบข้อความแล้ว
ในการเปิดตัวแอปครั้งต่อๆ ไป GCKUICastButton
จะแสดงเสมอ
หากตั้งค่าเป็น false
การค้นพบอุปกรณ์จะเริ่มขึ้นตามค่าของการแจ้งว่าไม่เหมาะสมGCKCastOptions::disableDiscoveryAutostart
คำถามที่พบบ่อย
จะเกิดอะไรขึ้นหากฉันเปิดตัวแอปตัวส่งการแคสต์อีกครั้งด้วย Cast SDK v4.4.8 และ Xcode 12
แอปของคุณอาจไม่พบอุปกรณ์แคสต์ในเครือข่ายภายใน เว้นแต่คุณจะได้รับสิทธิ์เครือข่ายมัลติแคสต์จาก Apple โปรดทราบว่า Apple จะไม่ให้สิทธิ์มัลติแคสต์เพียงเพื่อจุดประสงค์ในการรองรับการแคสต์เท่านั้น หากวางแผนที่จะสร้างด้วย Xcode 12 คุณควรเปิดตัวแอปด้วย Cast 4.6.0
หากฉันเปิดตัวแอปอีกครั้งด้วย Cast SDK ใหม่ ผู้ใช้ของฉันจะใช้ iOS 13 หรือเวอร์ชันเก่ากว่า
ผู้ใช้จะเห็นประสบการณ์การใช้งานแบบเดียวกับที่เคยทำก่อนเปิดตัวแอปอีกครั้ง การเปลี่ยนแปลงที่ผู้ใช้เห็นจะจำกัดเฉพาะผู้ใช้ที่ใช้งาน iOS 14 เท่านั้น
ฉันจะต้องทำอย่างไรเพื่ออัปเดตแอปเมื่อ Cast SDK เวอร์ชันใหม่เปิดตัวแล้ว
- อัปเดต
Info.plist
ของแอปให้มีคำอธิบายการใช้งาน เครือข่ายภายใน - เพิ่ม
NSBonjourServices
ลงในInfo.plist
ของแอป แล้วระบุชื่อบริการ Bonjour สำหรับแคสต์ และรหัสแอป - อัปเกรดแอปผู้ส่งเพื่อใช้ Cast SDK 4.6.0
- เผยแพร่แอปใน Apple App Store อีกครั้ง
ทำไมอุปกรณ์จึงหยุดแสดงในเครื่องมือเลือกอุปกรณ์ที่กำหนดเองหลังจากที่อัปเกรดเป็น 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® โดยพร้อมให้ใช้งานทั้งในเว็บไซต์นักพัฒนาซอฟต์แวร์และ CocoaPods ใหม่
google-cast-sdk-no-bluetooth
รายละเอียดแอป
รายละเอียดต่อไปนี้ขึ้นอยู่กับเวอร์ชันของ iOS SDK ที่คุณใช้อยู่ในปัจจุบัน
แอปที่สร้างด้วย iOS 12 SDK หรือเวอร์ชันก่อนหน้า
- การดำเนินการที่แนะนำ ประสิทธิภาพการค้นหาอุปกรณ์อาจลดลงเมื่อทำงานบน iOS 13 แต่จะยังคงใช้งานได้ เราขอแนะนำให้นักพัฒนาซอฟต์แวร์อัปเกรดเป็น Cast SDK v4.4.4 เมื่อพร้อมใช้งาน
- iOS 13 จะแจ้งให้ผู้ใช้ให้สิทธิ์ Bluetooth® กับแอป
แอปที่สร้างด้วย iOS 13 SDK
- ขอให้ดำเนินการ: อัปเดตเป็น Cast SDK 4.4.4 ไม่เช่นนั้นปุ่ม "แคสต์" อาจไม่ปรากฏหากผู้ใช้ไม่ให้สิทธิ์เข้าถึงตำแหน่ง การอัปเกรดเป็น Cast SDK 4.4.4 นั้นจำเป็นต่อการมอบประสบการณ์การแคสต์ที่เชื่อถือได้บน iOS 13