2015-02-09 80 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

    相關問題