iOS - add contact into Contacts?

前端 未结 3 1986
故里飘歌
故里飘歌 2020-12-07 10:26

Heyo! Is there a way how when a user taps a button it can add or update a contact into the actual Apple Contacts Book? Some festivals have email responses include a \"name c

3条回答
  •  醉话见心
    2020-12-07 11:09

    @import Contacts;
    -(void)addToContactList
     {
    CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
    
    if (status == CNAuthorizationStatusDenied || status == CNAuthorizationStatusRestricted) {
    
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:@"This app previously was refused permissions to contacts; Please go to settings and grant permission to this app so it can add the desired contact" preferredStyle:UIAlertControllerStyleAlert];
    
        [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
    
        [self presentViewController:alert animated:TRUE completion:nil];
    
        return;
    
    }
    
    CNContactStore *store = [[CNContactStore alloc] init];
    
    [store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
    
        if (!granted) {
    
            dispatch_async(dispatch_get_main_queue(), ^{
    
                // user didn't grant access;
    
                // so, again, tell user here why app needs permissions in order  to do it's job;
    
                // this is dispatched to the main queue because this request could be running on background thread
    
            });
    
            return;
    
        }
    
    
    
        // create contact
    
    
    
        CNMutableContact *contact = [[CNMutableContact alloc] init];
    
        contact.givenName = @"Test";
    
        contact.familyName = @"User";
    
        CNLabeledValue *homePhone = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:[CNPhoneNumber phoneNumberWithStringValue:@"91012-555-1212"]];
    
        contact.phoneNumbers = @[homePhone];
    
    
    
        CNSaveRequest *request = [[CNSaveRequest alloc] init];
    
        [request addContact:contact toContainerWithIdentifier:nil];
    
    
    
        // save it
    
    
    
        NSError *saveError;
    
        if (![store executeSaveRequest:request error:&saveError]) {
    
            NSLog(@"error = %@", saveError);
    
        }
    
    }];
    
     }
    

提交回复
热议问题