1

タグ NSUserActivityTypes を使用して、info.plist に文字列を追加します。

画面の 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