大多数浏览器和
Developer App 均支持流媒体播放。
-
简化您的 Apple tvOS App 登录
了解人们如何在 iOS 或 iPadOS 设备上使用面容 ID 或触控 ID 来授权购买和登录您的 Apple tvOS App。了解如何为您的 App 使用者简化登录,并帮助他们更快捷地获得想要的内容。我们将向您展示如何设置简化的登录过程,并分享关于创造良好的 Apple TV 登录体验的一些最佳实践。为了充分了解本节内容,我们建议您基本了解相关域和认证服务框架。
资源
相关视频
WWDC22
WWDC21
-
下载
♪ ♪ 大家好 我叫迦勒 我是tvOS团队的程序员 我等不及要跟你们分享 我们针对tvOS 15登入方式 所做的改进 我们希望大家在用Apple TV的时候 可以马上登入进去 找到想看的内容 过程越简单越好 也就是说 登入App的过程 应该要非常顺畅又简易 其中最常见的登入方式 就是输入密码 我们会鼓励用户设高强度 或是独一无二的密码 但每次输入密码都会花很多时间 现在 tvOS 15有了新功能 让你登入App的时候 变得更容易 首先 你会先看到新的登入画面 这画面上有很多重要的信息 第一个是提供tvOS一致性的登入体验 第二个是它会让用户知道 可以用iPhone或iPad登入 第三个则是提供用户 自己App能够支持的 其他登入方式 待会我会再针对这点多加说明 现在 我想先讲如何使用 iPhone或iPad登入 用户只要用了App登入 就会唤醒iPhone 用户就会看到Apple TV传来的通知 就像画面上这样 只要点击该通知 iPhone会自动导到 登入的画面 系统会从iCloud钥匙串提供验证建议 用户可以选择面容ID登入 验证就会回传到Apple TV 现在只要有App就能完成登入 并且让用户马上就能看到内容 我想要通过这个机会强调 这种登入体验 并不是靠输入文字的方式 这是最强大的登入体验 Apple TV、iPhone或是iPad 能互相支持 来将用户导入登入过程 用户很快就能适应新的登入体验 在Apple所有平台上都有高层API 让用户可以登入到App 在tvOS 15上能特别感受到 此功能的强大之处 只要写点程序 你就可以享有 刚刚跟你们讲到的这些登入体验 现在就立刻来跟你们介绍 先从设定App里的关联域框架开始 关联域框架会在App跟网域之间 建立安全的链接 让Apple TV跟iPhone或iPad 可以互相支持 并提供最安全的登入凭证方式 首先要确认你网域支持的 apple-app-site-association文件 有将你tvOS App里面的应用标识 列入在网络凭证密钥里面
接着 在Xcode里面 将关联域框架功能 加到你的tvOS App 最后 把你的网域 跟着网页凭证前置 加进关联域框架功能 想知道更多有关如何设定 App里的网络凭证密钥 请看下方2017年开发者大会的视频 “App密码自动填充教学” 接着 我要介绍如何用认证服务 来请求凭证 那我们来看一些实际的程序代码例子 我们可以看到几个基本的要件 都需要请求凭证 如果你已经将认证服务API应用在 你iOS或macOC的App 那你对这程序代码应该不陌生 我会先以 ASAuthorizationController当例子 来示范如何用它来请求密码 这API强大的地方就是 它可以让你指定 好几种不同的请求 如果你的App有支持Apple登入系统 你可以考虑将面容ID 写在你的认证请求数组中 当你指定好几种请求 iPhone跟iPad会让用户自行决定 他们想用哪种凭证方式 来登入 接下来我会将self 设成 authorization controller的委托 并呼叫performRequests来执行登入
我现在要从 ASAuthorization-ControllerDelegate 执行几个方式
当用户在iPhone或iPad上选择了 想登入的凭证方式 系统会自动叫出 didCompleteWithAuthorization
我现在可以使用密码属性跟用户 在凭证上完成登入 如果登入失败 系统会叫出didCompleteWithError
若用户取消登入 我就会直接回到上一步 这样App就会回到主登入画面 我也可以选择让用户知道 登入方式有错 请他们再试一次 接着要跟你们介绍 如何自制登入视图 这API叫做 Custom Authorization Methods 它能让你App有支持的其他登入方式 出现在登入视图
“.other”值给予很大的弹性 你可以用这选项直接导向 手动登入流程 像是要求用户名称以及密码 或可以直接导向你自创的UI 让用户可以选择 另一种登入方式 如果你App可以让用户 使用电视提供商账户登入 你就应该使用 .videoSubscriberAccount值 最后要介绍.restorePurchase值 它能让用户在恢复App内购买时登入 当用户自行选择了 任一种定制的凭证方式 你App会自动导向用户选的登入流程 我们直接来看实际范例 现在先回到 视频前面有提到的 ASAuthorizationController程序代码 为了跑出定制登入选项 我会在authorization controller 写上 customAuthorizationMethods属性 在这例子 我会用.other 还有.restorePurchase这两个值 让“手动登入”以及“恢复购买” 这两个键 出现在登入视图的系统上 你要替自己的App 选择适合的值
当用户选择了某种定制凭证方式 系统会在我 authorizationController的委托 呼叫didCompleteWithCustomMethod 通过这种方法 我可以确认用户输入的值 并将他们导向请求的登入方式
最后 我想提一下 一些很棒的实际运用 tvOS上最好的登入体验 就只有一个“登入”按钮 导到登入的过程中 只提供少数但明确的选项 只要用新系统的登入视图 来取代目前的登入体验 用户在用iPhone或iPad的时候 也可以有登入选项了 如果想提供用户别的登入选项 就可以利用 custom authorization methods API tvOS 15让用户的登入体验 变得简易又好上手 系统登入视图可以让用户 用iPhone或iPad就时就能登入 认证服务里最给力的新API 让你工作流程变得更加容易
对于我在这视频提到的范例 有兴趣了解更多的话 请在Developer App里找这议程 并参考里面有提到一样程序代码的项目 想更了解认证服务框架是如何帮你 可以在Apple各大平台上 提供最佳的登入体验 请看开发者大会2019年的视频 视频叫做“认证服务中的新增功能” 谢谢收看 希望你们喜欢 这次开发者大会的内容 [音乐]
-
-
3:28 - Request a credential
let controller = ASAuthorizationController(authorizationRequests: [ ASAuthorizationPasswordProvider().createRequest() ]) controller.delegate = self controller.performRequests()
-
4:19 - Finish signing in
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { if let credential = authorization.credential as? ASPasswordCredential { // Use the credential to sign in } }
-
4:43 - Handle errors
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) { if case ASAuthorizationError.canceled = error { return } // Let the user know something went wrong }
-
6:00 - Specify custom authorization methods
controller.customAuthorizationMethods = [ // Sign in Manually .other, // Restore Purchase .restorePurchase ]
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。