Quyền và khám phá trên iOS

Bắt đầu từ iOS 14, hệ điều hành sẽ thực thi các hạn chế mới và các quyền ả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 bạn. Để ứ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ý quyền thay đổi.

iOS 14

Nhà phát triển nên cập nhật các ứng dụng dành cho thiết bị gửi iOS Cast thành 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 tương ứng.

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 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à điều khiển thiết bị truyền để 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 sẽ sửa đổi một số điểm trong trải nghiệm người dùng đối với SDK cho những ứng dụng đang sử dụng bộ chọn thiết bị chuẩn. Những sửa đổi 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 thiết bị đã truy cập vào mạng cục bộ tắt.

Các ứng dụng được tạo bằng các phiên bản SDK truyền sử dụng phiên bản 4.4.8 trở xuống sẽ vẫn tiếp tục để hoạt động miễn là chúng được xây dựng bằng Xcode 11.7 trở xuống. Nếu bạn xây dựng cho iOS 14 với 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 Cast iOS SDK phiên bản 4.6.0 trở lên với CocoaPods bằng cách làm theo thiết lập CocoaPods hoặc theo cách thủ công sau khi thiết lập thủ công. Bản phát hành này thay đổ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. Nút Truyền sẽ luôn hiển thị. Nếu không thấy 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ẽ xuất hiện, cung cấp hướng dẫn về lý do thiết bị có thể không có sẵn, bao gồm cả thông tin về cách bật lại quyền truy cập mạng cục bộ quyền.

Thay đổi về SDK truyền

Truyền lần đầu tiên

Lần đầu tiên người dùng cố gắng Truyền, quyền truy cập mạng cục bộ (LNA) hộp thoại xen kẽ sẽ xuất hiện giải thích lý do tại sao quyền truy cập mạng cục bộ cần thiết, sau đó là quyền truy cập mạng cục bộ iOS do Apple cung cấp . Các ví dụ dưới đây minh hoạ quy trình này:

Quy trình cấp quyền truy cập mạng cục bộ

Không truyền được

Kể từ SDK dành cho 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 có Thiết bị truyền, khi bạn nhấn vào nút Truyền, hộp thoại sẽ xuất hiện gợi ý về những lý do có thể khiến tính năng Truyền không hoạt động, như minh hoạ trong các bản mô phỏng dưới đây:

Không dùng được quy trình và tính năng Truyền

Cập nhật ứng dụng trên iOS 14

  1. Thêm SDK Truyền iOS 4.8.1 vào dự án

    Nếu sử dụng CocoaPods, hãy sử dụng pod update để thêm SDK 4.8.1 vào dự án của bạn.

    Nếu không, lấy SDK theo cách thủ công.

  2. Thêm NSBonjourServices vào Info.plist của bạn

    Chỉ định NSBonjourServices trong Info.plist để cho phép khám phá mạng cục bộ thành công trên iOS 14.

    Bạn cần thêm cả _googlecast._tcp_<your-app-id>._googlecast._tcp làm dịch vụ cho thiết bị khám phá để hoạt động chính xác.

    appID là receiverID của bạn, cũng là ID được xác định trong GCKDiscoveryCriteria.

    Cập nhật định nghĩa NSBonjourServices trong ví dụ sau đây và thay thế "ABCD1234" bằng appID của bạn.

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. Thêm NSLocalNetworkUsageDescription vào Info.plist

    Bạn nên tuỳ chỉnh thông báo hiển thị trong thẻ Địa phương Lời nhắc về mạng bằng cách thêm một chuỗi quyền dành riêng cho ứng dụng vào Tệp Info.plist cho phần NSLocalNetworkUsageDescription, chẳng hạn như để mô tả tính năng Truyền khám phá và các dịch vụ khám phá khác, như DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} sử dụng mạng cục bộ để khám phá các thiết bị hỗ trợ Cast trên mạng Wi-Fi của bạn
    mạng.</string>

    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 dưới dạng hiển thị trong mô phỏng.

    Hình ảnh hộp thoại cấp quyền truy cập mạng cục bộ trên Cast
  4. Phát hành lại ứng dụng lên App Store của Apple

    Bạn cũng nên phát hành lại ứng dụng bằng phiên bản 4.8.1 dưới dạng sớm nhất có thể.

Tùy chỉnh

Bắt đầu khám phá thiết bị truyền

Theo mặc định, quá trình khám phá thiết bị truyền được bắt đầu vào lần đầu tiên người dùng nhấn nút Truyền (GCKUICastButton). Nếu đây là lần đầu tiên người dùng đã cố sử dụng ứng dụng Truyền trên mạng cục bộ sau khi nâng cấp lên iOS Kể từ ngày 14, quảng cáo xen kẽ LNA mới sẽ xuất hiện, sau đó là Mạng cục bộ iOS Hộp thoại cấp quyền truy cập.

Sẽ 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ố yếu 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 cờ này GCKCastOptions::disableDiscoveryAutostart được đặt 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. Thông báo cung cấp thông tin sẽ được hiển thị cho người dùng để họ biết lý do cấp quyền truy cập mạng cục bộ cần thiết. Sau thông báo đó, thông báo LNA iOS 14 sẽ hiển thị. Quá trình khám phá thiết bị truyền bắt đầu sau khi tin nhắn được xác nhận.

Trong các lần chạy Ứng dụng tiếp theo, GCKUICastButton sẽ luôn hiển thị.

Nếu bạn đặt chính sách này 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 huỷ bỏ Truyền ứng dụng người gửi bằng SDK Cast v4.4.8 và Xcode 12?

Ứng dụng của bạn có thể không phát hiện được Thiết bị truyền trên mạng cục bộ trừ phi bạn đã được Apple cấp quyền phát đa hướng kết nối mạng. Xin lưu ý rằng Apple sẽ không cấp quyền phát đa hướng chỉ cho mục đích hỗ trợ Cast. Nếu dự định tạo bằng Xcode 12, bạn nên phát hành ứng dụng của mình 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 SDK Truyền mới, thì điều gì người dùng chạy trên iOS 13 trở xuống có trải nghiệm không?

Họ sẽ tiếp tục thấy trải nghiệm người dùng giống như trước đây bản phát hành lại ứng dụng của bạn. Người dùng chỉ có thể thấy các thay đổi đối với 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 có phiên bản của SDK Truyền được phát hành không?

  • Cập nhật Info.plist của ứng dụng để bao gồm một mạng cục bộ phần mô tả mức sử dụng.
  • Thêm NSBonjourServices vào Info.plist và 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 SDK Truyền 4.6.0.
  • Phát hành lại ứng dụng lên cửa hàng ứng dụng của Apple.

Tại sao thiết bị ngừng xuất hiện trong thiết bị tuỳ chỉnh của tôi sau khi nâng cấp lên 4.6.0?

Đây là một vấn đề đã biết có thể xảy ra nếu bạn dùng một 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ở xuống, quá trình quét thiết bị là tự động. Kể từ phiên bản 4.6.0, bạn sẽ cần gọi startDiscovery một cách rõ ràng trên GCKDiscoveryManager để bắt đầu khám phá thiết bị.

Lý do cho sự thay đổi này là vì Quyền truy cập mạng cục bộ (LNA) lời nhắc cấp quyền sẽ xuất hiện sau khi ứng dụng đã quét lần đầu tiên bất cứ lúc nào. Đ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 của bạn.

Nhữ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ẽ dự kiến sẽ cung cấp quảng cáo xen kẽ một lần trước khi khởi tạo thiết bị quét tìm dữ liệu 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ằm tác động đến ứng dụng sử dụng SDK Google Cast.

Bắt đầu với Google Cast SDK phiên bản 4.4.3, có sẵn một SDK bổ sung thực hiện không yêu cầu quyền truy cập Bluetooth®. Tính năng này có sẵn cả trên trang nhà phát triển và trên trang web mới google-cast-sdk-no-bluetooth Cacao.

Bảng chi tiết về ứng dụng

Sau đây là bảng chi tiết tuỳ thuộc vào phiên bản SDK iOS mà bạn đang sử dụng 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 đang chạy trên iOS 13 nhưng vẫn sẽ hoạt động. Bạn nên các nhà phát triển sẽ nâng cấp lên Cast SDK v4.4.4 khi có sẵn.
  • 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 sẽ xuất hiện nếu người dùng không cấp quyền truy cập thông tin vị trí. Nâng cấp lên Cast SDK 4.4.4 là cần thiết để đảm bảo trải nghiệm truyền đáng tin cậy trên iOS 13.