Kể từ iOS 14, hệ điều hành sẽ thực thi các hạn chế và quyền mới ảnh hưởng đến trải nghiệm người dùng khi truyền. Điều này cũng sẽ ảnh hưởng đến cách bạn tạo SDK truyền trong ứng dụng. Để ứng dụng của bạn duy trì chức năng Truyền với các phiên bản iOS mới nhất, bạn phải cập nhật để xử lý những thay đổi về quyền này.
iOS 14
Nhà phát triển nên cập nhật ứng dụng trình phát iOS Cast lên SDK Google Cast phiên bản 4.6.0 trở lên. Các phiên bản này hỗ trợ iOS 14 và các yêu cầu của phiên bản này.
Kể từ iOS 14, các ứng dụng quét tìm thiết bị trên mạng cục bộ giờ đây sẽ nhắc người dùng bằng hộp thoại cấp quyền một lần để tìm và kết nối với các thiết bị mạng cục bộ. Nền tảng Cast sử dụng mạng cục bộ để khám phá và kiểm soát các thiết bị Cast, vì vậy, nếu người dùng từ chối cấp quyền, họ sẽ không thể truyền.
Để cải thiện trải nghiệm người dùng, chúng tôi sẽ thực hiện một số sửa đổi về trải nghiệm người dùng cho SDK cho những ứng dụng đang sử dụng bộ chọn thiết bị tiêu chuẩn. Những sửa đổi về trải nghiệm người dùng này giúp người dùng hiểu rõ hơn lý do cần có quyền truy cập vào mạng cục bộ, cũng như cách bật tính năng truyền nếu quyền truy cập vào thiết bị mạng cục bộ đã bị tắt.
Các ứng dụng được tạo bằng các phiên bản SDK truyền phát sử dụng phiên bản 4.4.8 trở về trước sẽ tiếp tục hoạt động miễn là các ứng dụng đó được tạo bằng Xcode 11.7 trở về trước. Nếu đang xây dựng cho iOS 14 bằng Xcode 12 trở lên, bạn nên cập nhật lên SDK Truyền v4.6.0 trở lên để đảm bảo ứng dụng Truyền của bạn sẽ tiếp tục hoạt động đúng cách.
Bạn có thể tải Cast iOS SDK phiên bản 4.6.0 trở lên xuống bằng CocoaPods bằng cách làm theo hướng dẫn thiết lập CocoaPods hoặc theo cách thủ công bằng cách làm theo hướng dẫn thiết lập thủ công. Bản phát hành này bao gồm các thay đổi đối với cơ chế khám phá cơ bản để cho phép các ứng dụng được tạo bằng Xcode 12 tìm thấy các thiết bị Cast trên mạng. Giờ đây, nút Truyền sẽ luôn hiển thị. Nếu không có thiết bị nào khi người dùng nhấn vào nút Truyền, thì một hộp thoại sẽ hiển thị hướng dẫn về lý do có thể không có thiết bị, bao gồm cả thông tin về cách bật lại quyền truy cập mạng cục bộ.
Các thay đổi về SDK truyền
Truyền lần đầu
Lần đầu tiên người dùng cố gắng Truyền, một hộp thoại xen kẽ về quyền truy cập mạng cục bộ (LNA) sẽ xuất hiện để giải thích lý do cần có quyền truy cập mạng cục bộ, theo sau là lời nhắc cấp quyền truy cập mạng cục bộ trên iOS do Apple cung cấp. Các mô phỏng bên dưới minh hoạ quy trình:
Không truyền được
Kể từ SDK trình gửi iOS 4.6.0, nút Truyền luôn xuất hiện khi người dùng kết nối với Wi-Fi. Khi không có thiết bị Cast, việc nhấn vào nút Cast sẽ hiển thị một hộp thoại cho người dùng gợi ý về những lý do có thể khiến tính năng Cast không hoạt động, như trong các bản mô phỏng bên dưới:
Cập nhật ứng dụng trên iOS 14
-
Thêm Cast iOS SDK 4.8.3 vào dự án
Nếu sử dụng CocoaPods, hãy sử dụng
pod update
để thêm SDK 4.8.3 vào dự án.Nếu không, hãy tự nhập SDK.
-
Thêm
NSBonjourServices
vàoInfo.plist
Chỉ định
NSBonjourServices
trongInfo.plist
để cho phép phát hiện mạng cục bộ thành công trên iOS 14.Bạn sẽ cần thêm cả
_googlecast._tcp
và_<your-app-id>._googlecast._tcp
làm dịch vụ để tính năng khám phá thiết bị hoạt động đúng cách.appID là receiverID, cũng chính là mã nhận dạng được xác định trong
GCKDiscoveryCriteria
.Cập nhật định nghĩa
NSBonjourServices
mẫu sau và thay thế "ABCD1234" bằng appID của bạn. -
Thêm
NSLocalNetworkUsageDescription
vàoInfo.plist
Bạn nên tuỳ chỉnh thông báo xuất hiện trong lời nhắc về Mạng cục bộ bằng cách thêm một chuỗi quyền dành riêng cho ứng dụng trong tệp
Info.plist
của ứng dụng choNSLocalNetworkUsageDescription
, chẳng hạn như để mô tả tính năng Khám phá Cast và các dịch vụ khám phá khác, chẳng hạn như DIAL.Thông báo này sẽ xuất hiện trong hộp thoại Quyền truy cập mạng cục bộ trên iOS như minh hoạ trong bản mô phỏng.
-
Phát hành lại ứng dụng lên Apple App Store
Bạn cũng nên phát hành lại ứng dụng bằng phiên bản 4.8.3 càng sớm càng tốt.
Tùy chỉnh
Khởi động tính năng khám phá thiết bị truyền
Theo mặc định, tính năng phát hiện thiết bị Cast sẽ được bắt đầu trong lần đầu tiên người dùng nhấn vào nút Cast (Truyền) (GCKUICastButton
). Nếu đây là lần đầu tiên người dùng cố gắng sử dụng ứng dụng Cast trên mạng cục bộ sau khi nâng cấp lên iOS 14, thì quảng cáo xen kẽ LNA mới sẽ xuất hiện, theo sau là hộp thoại cấp quyền truy cập vào mạng cục bộ của iOS.
Có một cờ mới cho phép bạn kiểm soát thời điểm bắt đầu khám phá thiết bị và hành vi của một số thành phần nhất định trong trải nghiệm người dùng:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Giá trị mặc định là true
. Cờ này chỉ áp dụng khi cờ GCKCastOptions::disableDiscoveryAutostart
được đặt thành false
.
Nếu bạn đặt thành true
, tính năng Khám phá thiết bị truyền sẽ bắt đầu khi người dùng nhấn vào biểu tượng GCKUICastButton
lần đầu tiên. Thông báo thông tin sẽ được hiển thị cho người dùng để cho họ biết lý do cần có quyền truy cập mạng cục bộ. Sau thông báo đó, thông báo LNA trên iOS 14 sẽ xuất hiện.
Quá trình khám phá thiết bị truyền sẽ bắt đầu sau khi thông báo được xác nhận.
Trong các lần chạy ứng dụng tiếp theo, GCKUICastButton
luôn hiển thị.
Nếu bạn đặt thành false
, quá trình khám phá thiết bị sẽ bắt đầu dựa trên giá trị của cờ GCKCastOptions::disableDiscoveryAutostart
.
Câu hỏi thường gặp
Điều gì sẽ xảy ra nếu tôi phát hành lại ứng dụng trình phát Cast bằng Cast SDK v4.4.8 và Xcode 12?
Ứng dụng của bạn có thể không tìm thấy các thiết bị Truyền trên mạng cục bộ, trừ phi bạn đã nhận được quyền phát đa hướng trên mạng từ Apple. Xin lưu ý rằng Apple sẽ không cấp quyền truyền đa điểm chỉ nhằm mục đích hỗ trợ tính năng Truyền. Nếu dự định tạo bản dựng bằng Xcode 12, bạn nên phát hành ứng dụng bằng Cast 4.6.0.
Nếu tôi phát hành lại ứng dụng bằng Cast SDK mới, thì người dùng chạy trên iOS 13 trở xuống sẽ có trải nghiệm như thế nào?
Họ sẽ tiếp tục thấy trải nghiệm người dùng giống như trước khi bạn phát hành lại ứng dụng. Những thay đổi mà người dùng nhìn thấy chỉ áp dụng cho những người dùng chạy trên iOS 14.
Tôi cần làm gì để cập nhật ứng dụng sau khi phiên bản mới của SDK truyền phát được phát hành?
- Cập nhật
Info.plist
của ứng dụng để thêm nội dung mô tả việc sử dụng mạng cục bộ. - Thêm
NSBonjourServices
vàoInfo.plist
của ứng dụng và cung cấp tên dịch vụ Bonjour cho tính năng Truyền và mã ứng dụng của bạn. - Nâng cấp ứng dụng gửi để sử dụng Cast SDK 4.6.0.
- Phát hành lại ứng dụng của bạn lên cửa hàng ứng dụng của Apple.
Tại sao các thiết bị không còn xuất hiện trong bộ chọn thiết bị tuỳ chỉnh sau khi tôi nâng cấp lên phiên bản 4.6.0?
Đây là vấn đề đã biết có thể xảy ra nếu bạn đang sử dụng bộ chọn thiết bị tuỳ chỉnh thay vì bộ chọn thiết bị chuẩn. Trong phiên bản 4.4.8 của Cast SDK trở về trước, tính năng quét thiết bị sẽ tự động thực hiện. Kể từ phiên bản 4.6.0, bạn cần gọi rõ ràng phương thức startDiscovery
trên lớp
GCKDiscoveryManager
để bắt đầu quá trình khám phá thiết bị.
Lý do của thay đổi này là do lời nhắc cấp quyền Truy cập mạng cục bộ (LNA) sẽ xuất hiện sau khi ứng dụng quét lần đầu tiên. Điều này có thể khiến hộp thoại cấp quyền xuất hiện ở những vị trí ngẫu nhiên trong ứng dụng.
Nhà phát triển tạo bộ chọn thiết bị tuỳ chỉnh cho ứng dụng của họ sẽ phải cung cấp quảng cáo xen kẽ một lần trước khi bắt đầu quét thiết bị lần đầu tiên trong iOS 14.
iOS 13
Với iOS 13, các yêu cầu mới về quyền đã được đưa ra, ảnh hưởng đến các ứng dụng sử dụng SDK Google Cast.
Kể từ SDK Google Cast phiên bản 4.4.3, bạn có thể sử dụng một SDK bổ sung không yêu cầu quyền Bluetooth®. Tài liệu này có trên cả trang web dành cho nhà phát triển và trên Cocoapods google-cast-sdk-no-bluetooth
mới.
Bảng chi tiết về ứng dụng
Dưới đây là thông tin chi tiết tuỳ thuộc vào phiên bản SDK iOS mà bạn đang sử dụng:
Ứng dụng được tạo bằng SDK iOS 12 trở xuống
- Việc nên làm. Hiệu suất khám phá thiết bị có thể giảm khi chạy trên iOS 13, nhưng vẫn hoạt động. Các nhà phát triển nên nâng cấp lên Cast SDK v4.4.4 khi có thể.
- iOS 13 sẽ nhắc người dùng cấp quyền Bluetooth® cho ứng dụng.
Ứng dụng được xây dựng bằng SDK iOS 13
- Việc cần làm: Cập nhật lên Cast SDK 4.4.4 hoặc nút truyền có thể không xuất hiện nếu người dùng không cấp quyền truy cập thông tin vị trí. Bạn cần nâng cấp lên Cast SDK 4.4.4 để đảm bảo trải nghiệm truyền ổn định trên iOS 13.