2015-02-09 112 views
2

我已经完成了示例动作扩展应用程序。我无法获得主机应用程序请求data.i认为是有这个代码的一些问题。如何在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. 输入在主机应用程序源设置数据

 

    //use our group user defaults 
    NSUserDefaults *defaults = [[NSUserDefaults alloc] 
    initWithSuiteName:@"group.com.organization.ProductName"]; 

    //set a greeting 
    [defaults setObject:@"username" forKey:@"username"]; 
    [defaults setObject:@"password" forKey:@"password"]; 

    //synchronise 
    [defaults synchronize]; 

  • SomeExtension.m
  •  
    
        //use our group user defaults 
        NSUserDefaults *defaults = [[NSUserDefaults alloc] 
        initWithSuiteName:@"group.com.organization.ProductName"]; 
    
        //get the greeting  
        NSString *username = [defaults stringForKey:@"username"]; 
        NSString *password = [defaults stringForKey:@"password"]; 
    
        //check if greeting isn't empty 
        NSLog(@"username = %@/password = %@", username, password); 
    
    
    +0

    不要只提供链接的答案,因为链接可能会在将来过期。请尝试引用一些相关的代码或在回答问题时有用的代码的某些部分。 – 2015-05-14 06:37:53

    相关问题