1

我在 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

}

所以,问题是:为什么,我在锁屏上看不到我的快捷方式?

请提供任何帮助!

4

1 回答 1

0

当你解锁手机并进入siri建议屏幕时你能看到它吗? 在此处输入图像描述

尝试将此活动设置为您当前的视图控制器。

[self setUserActivity: userActivityTag]

不知道它是否有帮助,但它对我有用。

于 2018-09-15T11:57:49.377 回答