Как разместить приложение для отправки данных в расширение приложения в расширении действия IOS

Я сделал пример приложения расширения действия. Я не могу получить данные запроса хост-приложения. Я думаю, что есть некоторые проблемы с этим кодом.

Код запроса хост-приложения

  NSDictionary *request = @{@"username”:@“username”,@“password”:@“password”};
            UIActivityViewController *extensionController = [[UIActivityViewController alloc] initWithActivityItems:@[request] applicationActivities:nil];
           extensionController.popoverPresentationController.sourceView = self.view;
        [self presentViewController:extensionController animated:YES completion:nil];

Код расширения приложения

NSExtensionItem *inputItem = self.extensionContext.inputItems[0];

    NSItemProvider *itemprovider = inputItem.attachments[0];

    [itemprovider loadItemForTypeIdentifier:(NSString *)kUTTypePropertyList options:nil completionHandler:^(NSDictionary *item, NSError *error) {

        NSDictionary *results = (NSDictionary *)item;

        NSLog(@“Host app Request Data=%@",results);

    }];

я не уверен, что не так в коде выше, кто-нибудь может мне помочь.. спасибо

1 ответ

Включите группы приложений и используйте NSUserDefaults

  1. Включите группы приложений и добавьте имя группы в свои целевые возможности хоста и расширения цели.

  2. Ввести набор данных в исходное приложение хоста

    // используем групповые настройки пользователя по умолчанию
    NSUserDefaults *defaults = [[NSUserDefaults alloc]  
    initWithSuiteName:@"group.com.organization.ProductName"];

    // установить приветствие
    [значения по умолчанию setObject:@"username" forKey:@"username"];
    [значения по умолчанию setObject: @ "пароль" forKey: @ "пароль"];

    // синхронизирует
    [по умолчанию синхронизировать];
  1. SomeExtension.m
    // используем групповые настройки пользователя по умолчанию
    NSUserDefaults * defaults = [[NSUserDefaults alloc] 
    initWithSuiteName: @ "group.com.organization.ProductName"];

    // получить приветствие    
    NSString *username = [значения по умолчанию stringForKey:@"username"];
    NSString * пароль = [значения по умолчанию stringForKey: @ "пароль"];

    // проверяем, не является ли приветствие пустым
    NSLog(@"username = %@ / password = %@", имя пользователя, пароль);
Другие вопросы по тегам