SiriKit 使用注意事項

在一段时间的SiriKit开发中遇到了很多问题,踩到了很多坑,最终实现的功能却很简单,远远没有达到惊艳的程度,使用过程中,一度怀疑这样的功能存在的必要性。

为了减少大家使用中造成的困扰,我分享一下自己使用中的主要步骤以及其中的注意事项。

1.  项目需要在project Target 的Capabilities中添加 SIri  Ability。(注意:因为有时候在项目中直接添加会出现报错,新建的项目需要在 Apple development 账号中  查找 相应的bundle ID  并为之添加Siri Ability)  2.    在info.plist 文件下添加  获取Siri权限的文字,字段名为Privacy - Siri Usage Description,描述文字为 :使用Siri发送信息到...  3.  在AppDelegate文件中 导入Intents框架:#import,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中添加获取Siri使用权限的代码:代码如下

[INPreferences requestSiriAuthorization:^(INSiriAuthorizationStatus status) {

if(status == INSiriAuthorizationStatusNotDetermined) {

NSLog(@"Siri not authorization yet");

}

else if(status == INSiriAuthorizationStatusRestricted) {

NSLog(@"Siri authorization restricted");

}

else if(status == INSiriAuthorizationStatusDenied) {

NSLog(@"Siri authorization denied");

}

else if(status == INSiriAuthorizationStatusAuthorized) {

NSLog(@"Siri authorization authorized");

}

}];

此段代码是必须的,通过此段代码获取Siri权限,才可以在Siri界面使用此app调用相关命令。(弹出申请权限请求界面,用户可能会拒绝,导致Siri无法使用)

4.在Xcode导航栏 ,在File—>New—>New—>Target,新建target,如下图所示


注意事项:默认勾选  Inclue UI Extension, 通过UI Extension可以自定义Siri命令唤起app的UI界面(使用锻炼命令始终唤醒不了界面,一直没有找到原因,但是使用Siri发送信息是可以唤起UI界面的,和同行交流过,有人说是Siri的bug,我也不太确定,欢迎大家指正)。


5.经过上一个步骤,在根目录下会生成两个文件夹,分别是Siri和SiriUI界面,接下来我们我们就可以在这些文件下编写自己想要Siri完成的命令。

6.默认状态下Siri文件夹下 info.plist 文件中NSExtension—>NSExtensionAttributes—>IntentsSupported中拥有的Siri功能包括三个INSendMessageIntent(发送信息命令),INSearchForMessagesIntent(搜索信息命令),INSetMessageAttributeIntent(设置信息属性命令),另外还有一个字段IntentsRestrictedWhileLocked  如果需要在锁屏时禁用某个功能,则再在IntentsRestrictedWhileLocked中加入相应项的Intent。可以自己另外增加相应的命令。比如说打车命令,运动命令,订房命令,付款命令,打电话命令。SiriUI文件夹下 info.plist 文件中NSExtension—>NSExtensionAttributes—>IntentsSupported中拥有的Siri命令包括INSendMessageIntent(发送信息命令)。

7.其他的细节请大家参考这篇文章,介绍的比较详细。

iOS10 SiriKit QQ适配详解

http://dev.qq.com/topic/57ece0331288fb4d31137da6   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,255评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,196评论 4 61
  • 两个人在一起是一个件美好的事情,美好已经消失了,,双方肯定会有不好的体验,抱怨,指责,你对他的期待,他没有给你,爱...
    峰至阅读 3,921评论 0 0
  • 印度,穿T恤、留短发、摔跤、性别女这些组合足够让人咋舌,每一个点都足以招致一大波的攻击和嘲笑,然而,这些组合成立了...
    宛汝时光阅读 1,722评论 0 0