UIActivityViewController и примечания


У меня есть UIActivityViewController в моем приложении для таких вещей, как публикация в Facebook, но он также добавляет Заметки в качестве опции, но так как нет UIActivityType для заметок, я не могу исключить его, но он также ничего не добавляет к заметкам. Мой код:

Mail *mail = [[Mail alloc]init];
    NSString *html = self.finalObject[@"Request"];
    NSString *thetitle = [self.finalObject[@"Title"] stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
    NSString *thedate = self.finalObject[@"dateMade"];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MMM_dd_yyyy"];
    [dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
    NSDate *theNewDate1 = [dateFormat dateFromString:thedate];
    NSString *theNewDate = [dateFormat stringFromDate:theNewDate1];

    mail.thehtml = html;
    self.nameofhtmlfile = [[[[@"http://www.iprayed4u.net/app/" stringByAppendingString:thetitle] stringByAppendingString:@"_"] stringByAppendingString:theNewDate] stringByAppendingString:@".html"];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:@[mail]];



        activityVC.excludedActivityTypes = @[ UIActivityTypePostToWeibo,

                                              UIActivityTypeCopyToPasteboard,

                                              UIActivityTypeAssignToContact,
                                              UIActivityTypeMail,
                                              UIActivityTypePrint,
                                              UIActivityTypeAirDrop
                                              ];



    [self presentViewController:activityVC animated:YES completion:nil];

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {

    if ([activityType isEqualToString:UIActivityTypePostToTwitter]){
        NSString *test = [[@"I just pledged to pray.  You can pray too, just click " stringByAppendingString:self.nameofhtmlfile] stringByAppendingString:@" to view request.  Get #iPrayed4U here https://appsto.re/us/p_t30.i"];
        return test;
    }
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]){
        NSString *test = [[[[[@"'" stringByAppendingString:self.finalObject[@"Title"]] stringByAppendingString:@"'.  "] stringByAppendingString:@"I just pledged to pray.  You can pray too, just click " ] stringByAppendingString:self.nameofhtmlfile] stringByAppendingString:@" to view request.  You can also get the app for free.  Check out iPrayed 4 U on iOS at https://appsto.re/us/p_t30.i #iPrayed4U"];
        return test;
    }
    if ([activityType isEqualToString:UIActivityTypeMessage]){
        NSString *test = [[[[[@"'" stringByAppendingString:self.finalObject[@"Title"]] stringByAppendingString:@"'.  "] stringByAppendingString:@"I just pledged to pray.  You can pray too, just click " ] stringByAppendingString:self.nameofhtmlfile] stringByAppendingString:@" to view request.  You can also get the app for free.  Check out iPrayed 4 U on iOS at https://appsto.re/us/p_t30.i #iPrayed4U"];
        return test;
    }
    return nil;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    return @"Some string";
}

Как я могу заставить его удалить заметки из UIActivityViewController или заставить его действительно работать?

1 2

1 ответ:

Вы не можете исключить Notes, потому что это не системное действие: это расширение общего ресурса. Только пользователь может решить, включать его или исключать.

Теперь, когда вы добавили остальную часть кода, Вы можете понять, почему Notes ничего не сохраняет: вы не передаете ему никаких данных. Вы возвращаете nil, когда Notes запрашивает данные:
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
    if ([activityType isEqualToString:UIActivityTypePostToTwitter]){
    }
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]){
    }
    if ([activityType isEqualToString:UIActivityTypeMessage]){
    }
    return nil; // this is what you are sending to Notes
}