使用 NSUserActivity 在锁定屏幕上看不到我的 siri 快捷方式
Posted
技术标签:
【中文标题】使用 NSUserActivity 在锁定屏幕上看不到我的 siri 快捷方式【英文标题】:I can't see my siri shortcuts on lock screen using NSUserActivity 【发布时间】:2018-08-24 20:25:18 【问题描述】:我在 info.plist 中添加了我的带有标签 NSUserActivityTypes 的字符串。
我在屏幕的viewDidload方法上添加了这段代码:
NSUserActivity *userActivityTag = [[NSUserActivity alloc] initWithActivityType:kVoucher];
if(@available(ios 12.0, *))
[userActivityTag setEligibleForPrediction:YES];
userActivityTag.suggestedInvocationPhrase = [NSString stringWithFormat:@"Let's Voucher this"];
[userActivityTag setEligibleForSearch:YES];
[userActivityTag setRequiredUserInfoKeys:nil];
userActivityTag.title = [NSString stringWithFormat:@"Voucher"];
userActivityTag.userInfo = @
@"value":@"key"
;
UIImage *logo = [UIImage imageNamed:@"someImage"];
NSData *logoNSData = UIImageJPEGRepresentation(logo, 1.0f);
CSSearchableItemAttributeSet *attributes = [[CSSearchableItemAttributeSet alloc] initWithItemContentType: (NSString *)kUTTypeItem];
attributes.title = @"title";
attributes.keywords = @[@"implement", @"something", @"lol"];
attributes.contentDescription = @"Subtitle";
attributes.thumbnailData = logoNSData;
attributes.domainIdentifier = @"ownID";
userActivityTag.contentAttributeSet = attributes;
[userActivityTag becomeCurrent];
之后,我进入该屏幕并放置一个断点以探测代码是否已执行。 我在“设置”->“开发者”->“显示最近的快捷方式”和“在锁定屏幕上显示捐赠”上打开了这两个选项。
在我的 AppDelegate 上我有这个:
if([userActivity.activityType isEqualToString:kVoucher])
// Restore state for userActivity and userINFO
所以,问题是:为什么,我在锁屏上看不到我的快捷方式?
请帮忙!
【问题讨论】:
它对你有用吗? 【参考方案1】:当你解锁手机并进入siri建议屏幕时你能看到它吗?
尝试将此活动设置为您当前的视图控制器。
[self setUserActivity: userActivityTag]
不知道它是否有用,但它对我有用。
【讨论】:
以上是关于使用 NSUserActivity 在锁定屏幕上看不到我的 siri 快捷方式的主要内容,如果未能解决你的问题,请参考以下文章
iOS 10 NSUserActivity,位置建议 - MKMapItem 未出现在地图中
NSUserActivity 在 iOS9 中不能按关键字(仅按标题)搜索?
Swift 场景 userActivity NSUserActivity 传你 viewController