我在 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
}
所以,问题是:为什么,我在锁屏上看不到我的快捷方式?
请提供任何帮助!