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 tính năng Truyền. Điều này cũng sẽ ảnh hưởng đến cách bạn tạo SDK Truyền vào ứng dụng của mình. Để ứ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 gửi trên 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 đó.
Kể từ iOS 14, các ứng dụng quét tìm thiết bị trên mạng cục bộ nay 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 thiết bị mạng cục bộ. Nền tảng Truyền sử dụng mạng cục bộ để khám phá và kiểm soát các thiết bị Truyền, vì vậy, nếu từ chối cấp quyền, người dùng sẽ không thể truyền.
Để cải thiện trải nghiệm người dùng, chúng tôi đang điều chỉnh SDK về trải nghiệm người dùng đối với những ứng dụng đang sử dụng bộ chọn thiết bị tiêu chuẩn. Những nội dung sửa đổi trải nghiệm người dùng này giúp người dùng hiểu rõ hơn về lý do cần có quyền truy cập mạng cục bộ, cũng như biết cách bật tính năng truyền nếu quyền truy cập thiết bị mạng cục bộ đã bị vô hiệu hoá.
Các ứng dụng được tạo bằng phiên bản Cast SDK với phiên bản 4.4.8 trở xuống 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ở xuống. Nếu đang xây dựng ứng dụng cho iOS 14 bằng Xcode 12 trở lên, bạn nên cập nhật lên Cast SDK phiên bản 4.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 bình thường.
Bạn có thể tải SDK Cast iOS phiên bản 4.6.0 trở lên xuống cùng với CocoaPods bằng cách làm theo quy trình thiết lập CocoaPods hoặc làm theo quy trình thiết lập thủ công. Bản phát hành này có 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 thiết bị Truyền trên mạng. Lúc nà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, một hộp thoại sẽ hiển thị để cung cấp 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 vào mạng cục bộ.
Thay đổi Cast SDK
Truyền lần đầu tiên
Khi người dùng thử Truyền lần đầu, hộp thoại xen kẽ quyền truy cập mạng cục bộ (LNA) sẽ xuất hiện để giải thích lý do cần truy cập mạng cục bộ, sau đó là lời nhắc cấp quyền truy cập mạng cục bộ dành cho iOS do Apple cung cấp. Các bản mô phỏng dưới đây minh hoạ quy trình:
Không truyền được
Kể từ SDK người 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 dùng được Thiết bị truyền, thao tác nhấn vào nút Truyền sẽ mở ra một hộp thoại gợi ý cho người dùng về những lý do có thể khiến tính năng Truyền không hoạt động, như minh hoạ trong bản mô phỏng dưới đây:
Cập nhật ứng dụng của bạn trên iOS 14
-
Thêm Cast iOS SDK 4.8.0 vào dự án của bạn
Nếu bạn sử dụng CocoaPods, hãy sử dụng
pod update
để thêm SDK 4.8.0 vào dự án của bạn.Nếu không, hãy lấy SDK theo cách thủ công.
-
Thêm
NSBonjourServices
vàoInfo.plist
của bạnChỉ định
NSBonjourServices
trongInfo.plist
để cho phép khám phá 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ủa bạn. Đây là mã nhận dạng được xác định trong
GCKDiscoveryCriteria
.Hãy cập nhật định nghĩa
NSBonjourServices
của ví dụ sau và thay thế "ABCD1234" bằng appID. -
Thêm
NSLocalNetworkUsageDescription
vàoInfo.plist
của bạnBạn nên tuỳ chỉnh thông báo hiển thị trong lời nhắc Mạng cục bộ bằng cách thêm chuỗi quyền dành riêng cho ứng dụng vào tệp
Info.plist
của ứng dụng choNSLocalNetworkUsageDescription
, chẳng hạn như để mô tả các dịch vụ khám phá tính năng Truyền 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 iOS Local Network Access (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 trê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.0 càng sớm càng tốt.
Tùy chỉnh
Bắt đầu tính năng khám phá thiết bị truyền
Theo mặc định, quá trình khám phá thiết bị truyền sẽ bắt đầu ngay khi người dùng nhấn vào nút Truyền (GCKUICastButton
). Nếu đây là lần đầu tiên người dùng cố gắng dùng ứng dụng Truyền trên mạng cục bộ sau khi nâng cấp lên iOS 14, quảng cáo xen kẽ LNA mới sẽ xuất hiện, tiếp theo là hộp thoại quyền Truy cập mạng cục bộ trên iOS.
Một cờ mới sẽ được cung cấp để cho phép bạn kiểm soát thời điểm bắt đầu quá trình khám phá thiết bị cũng như hành vi của một số phần tử 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 bạn đặt cờ GCKCastOptions::disableDiscoveryAutostart
thành false
.
Nếu bạn đặt chính sách này thành true
, thì quá trình khám phá thiết bị truyền sẽ bắt đầu khi người dùng nhấn vào GCKUICastButton
lần đầu tiên. Một thông báo sẽ hiển thị cho người dùng cho họ biết lý do cần đến quyền mạng cục bộ. Sau thông báo đó, thông báo LNA trên iOS 14 sẽ hiển thị.
Quá trình khám phá thiết bị truyền sẽ bắt đầu sau khi xác nhận tin nhắn.
Trong những lần chạy ứng dụng tiếp theo, GCKUICastButton
sẽ luôn xuất hiện.
Nếu bạn đặt thành false
, thì 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 dành cho người gửi Cast bằng Cast SDK phiên bản 4.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 có quyền phát đa hướng kết nối mạng của Apple. Xin lưu ý rằng Apple sẽ không cấp các quyền truyền đa hướng chỉ nhằm mục đích hỗ trợ tính năng Truyền. Nếu định tạo bằng Xcode 12, bạn nên phát hành ứng dụng với Cast 4.6.0.
Nếu tôi phát hành lại ứng dụng của mình bằng Cast SDK mới, thì người dùng của tôi 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 phát hành lại ứng dụng. Các thay đổi mà người dùng thấy được chỉ áp dụng cho người dùng chạy iOS 14.
Tôi sẽ cần làm gì để cập nhật ứng dụng của mình sau khi phiên bản mới của Cast SDK được phát hành?
- Cập nhật
Info.plist
của ứng dụng để thêm nội dung mô tả về mức sử dụng mạng cục bộ. - Thêm
NSBonjourServices
vàoInfo.plist
của ứng dụng rồi cung cấp tên dịch vụ Bonjour cho Cast và mã ứng dụng của bạn. - Nâng cấp ứng dụng dành cho người 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ị ngừng xuất hiện trong bộ chọn thiết bị tuỳ chỉnh của tôi sau khi tôi nâng cấp lên phiên bản 4.6.0?
Đây là vấn đề đã biết và có thể xảy ra nếu bạn đang dùng một 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, quá trình quét thiết bị là tự động. Kể từ phiên bản 4.6.0, bạn cần gọi phương thức startDiscovery
một cách rõ ràng trên lớp
GCKDiscoveryManager
để bắt đầu quá trình khám phá thiết bị.
Lý do thay đổi này là vì 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. Điều này có thể khiến hộp thoại cấp quyền xuất hiện ở các vị trí ngẫu nhiên trong ứng dụng của bạn.
Các nhà phát triển tạo một bộ chọn thiết bị tuỳ chỉnh cho ứng dụng của họ có thể sẽ cung cấp quảng cáo xen kẽ một lần trước khi thiết lập tính năng quét thiết bị lần đầu ở 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 dùng SDK Google Cast.
Kể từ SDK Google Cast phiên bản 4.4.3, sẽ có thêm một SDK khác không yêu cầu quyền truy cập Bluetooth®. Tính năng này có trên cả trang web
dành cho nhà phát triển và
google-cast-sdk-no-bluetooth
CocoaPods mới.
Phân tích ứng dụng
Dưới đây là bảng chi tiết tuỳ thuộc vào phiên bản SDK iOS bạn đang sử dụng:
Ứng dụng được xây dựng bằng SDK iOS 12 trở xuống
- Hành động được đề xuất. 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 phiên bản 4.4.4 (nếu có).
- 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
- Cần hành động: Cập nhật lên Cast SDK 4.4.4, nếu không 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 đáng tin cậy trên iOS 13.