Как разместить приложение для отправки данных в расширение приложения в расширении действия 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
Включите группы приложений и добавьте имя группы в свои целевые возможности хоста и расширения цели.
Ввести набор данных в исходное приложение хоста
// используем групповые настройки пользователя по умолчанию NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.organization.ProductName"]; // установить приветствие [значения по умолчанию setObject:@"username" forKey:@"username"]; [значения по умолчанию setObject: @ "пароль" forKey: @ "пароль"]; // синхронизирует [по умолчанию синхронизировать];
- SomeExtension.m
// используем групповые настройки пользователя по умолчанию NSUserDefaults * defaults = [[NSUserDefaults alloc] initWithSuiteName: @ "group.com.organization.ProductName"]; // получить приветствие NSString *username = [значения по умолчанию stringForKey:@"username"]; NSString * пароль = [значения по умолчанию stringForKey: @ "пароль"]; // проверяем, не является ли приветствие пустым NSLog(@"username = %@ / password = %@", имя пользователя, пароль);