「视频」如何通过 Siri 播放视频?且看优酷技术接入实践( 三 )


由于壳工程里面主要就是 Siri Extension 的添加 , 所以这里主要说下公共 Bundle 和播放页 Bundle 这两个 Bundle 的流程 。公共 Bundle 处理:这个 Bundle 非常重要 , 它链接了壳工程和播放页Bundle 。这里主要涉及到两个问题:一是开屏广告的处理 。二是不要将过于复杂的业务放在其中;其次为降低跨团队的沟通成本 , 只在 Bundle 留一个入口 , 将所有的业务逻辑放到播放页的 Bundle 中去处理 。针对第一点的处理:当 Siri 唤起主包时 , 有可能是存在广告的 , 此时不能立即跳转到播放页进行播放 , 需要等广告结束之后再跳转 。这与唤端的逻辑是类似的 。针对第二点处理:通过一个单例类 , 创建这个单例类的时候将所需要的数据传递进去 。并且公共 Bundle 也没有直接依赖播放页的 Bundle , 而是通过 NSClassFromString + performSelector 的方式进行调用 。
下面是简单的代码示例:
-( BOOL)application:( UIApplication*)application continueUserActivity:( NSUserActivity*)userActivity restorationHandler:( void(^)( NSArray* _Nullable))restorationHandler {
{
// 判断 NSUserActivity 的类型 , 确认是 Siri Extension 传过来的
if(siriManagerClass && [siriManagerClass respondsToSelector:selctor]) {
[siriManagerClass performSelector:selctor withObject:userActivity];
}
returnYES;
}
} 播放页 Bundle 处理:这个 bundle 主要是调用搜索 SDK 将剧集名称转化成对的播放视频链接 , 最后跳转到播放页进行视频播放 , 主要是搜索参数的拼接和跳转逻辑 。
SiriKit 接入后的界面展示:
「视频」如何通过 Siri 播放视频?且看优酷技术接入实践
文章图片

文章图片

总结:接入 SiriKit 所踩的坑
【「视频」如何通过 Siri 播放视频?且看优酷技术接入实践】目前 , 优酷 App 已经接入 SiriKit, 已在 App Store 上架 。如果你的 App 也希望接入 , 以下这些防“坑”指南希望能帮到你 。确保 Siri 的 bundle ID 正确;创建 Siri Extension 注意 target 所支持的版本号 , 默认是当前 Xcode 所支持的最高版本号;提交审核时候注意 Siri Extension 的 Support Intents 的class Name 里面只包含 Intent 的类型 , 不然会报以下错误:因为涉及到证书和 Profile 的变化一定要提前修改好相关配置 。并提示各个业务线进行行相关修改和测试;


推荐阅读