iOS ShareExtension应用中的数据共享问题

时间:2016-10-03 03:50:35

标签: ios objective-c swift ios8-share-extension

我正在开发ShareExtension应用程序。
我想将Container App中的数据共享到ShareExtension应用程序。

以下是我在Container App View Controller中使用的代码:

let userDefaultx = NSUserDefaults(suiteName: "group.myapps.userConnect")
userDefaultx!.setObject("new user", forKey:"user")
userDefaultx!.synchronize()

现在我正在尝试捕获ShareExtension View Controller中的数据:

let userDefaults = NSUserDefaults(suiteName: "group.myapps.userConnect")
let user = userDefaults?.valueForKey("user")
print(" user \(user) ") // returns nil

我正在使用模拟器而我没有使用默认的 SLComposeServiceViewController
相反,我使用了常规的UIViewController。

我错过了什么问题?

1 个答案:

答案 0 :(得分:2)

按照以下步骤成功将共享扩展程序与您的应用程序集成,

  
      
  1. 在您的应用中添加新目标
  2.   

enter image description here

  
      
  1. 选择分享扩展程序 - >点击下一步
  2.   

enter image description here

  
      
  1. 您会收到一个弹出式提醒 - >点击激活按钮
  2.   

enter image description here

  
      
  1. 检查您应用的捆绑包标识符
  2.   

enter image description here

  
      
  1. 检查您的扩展程序包标识符
  2.   

enter image description here

  
      
  1. 登录Apple Developer Portal - >点击证书,标识符&个人资料部分 - >选择应用组下的   标识符部分 - >单击“添加新应用程序组”
  2.   

enter image description here

  
      
  1. 输入您的应用程序组名称 - >输入标识符,该标识符应以一词开头。
  2.   

enter image description here

  
      
  1. 为您的应用创建新的应用ID
  2.   

enter image description here

  
      
  1. 输入应用程序ID名称和应用程序的软件包标识符。
  2.   

enter image description here

  
      
  1. 启用应用程序组 - >单击完成
  2.   

enter image description here

  
      
  1. 现在选择您刚刚创建的应用ID - >点击修改
  2.   

enter image description here

  
      
  1. 单击“应用程序组”旁边的“编辑”
  2.   

enter image description here

  
      
  1. 选择您在步骤7中创建的应用组 - >单击完成

  2.   
  3. 使用您创建的应用ID生成配置文件并在项目中使用

  4.   
  5. 为您的应用扩展程序创建新应用ID

  6.   

enter image description here

  
      
  1. 输入应用程序ID名称和应用程序的扩展程序包标识符。
  2.   

enter image description here

  
      
  1. 再次执行步骤10到步骤14

  2.   
  3. 您必须为您的应用和扩展程序生成两个(开发/分发)配置文件

  4.   
  5. 这里我展示了为您的应用程序生成开发配置文件的一个示例 - >在Provisioning Profiles下选择Development    - >单击添加

  6.   

enter image description here

  
      
  1. 选择iOS App Development - >点击继续
  2.   

enter image description here

  
      
  1. 在步骤10 - >中选择您为应用创建的应用ID。点击继续 - >将其命名为>下载 - >安装它
  2.   

enter image description here

  
      
  1. 在项目目标中设置该个人资料
  2.   

enter image description here

  
      
  1. 按照步骤19到22生成扩展程序的开发配置文件。在这里选择您创建的App ID   为您的扩展。你需要按照这些相同的步骤进行生成   当您需要生活时,您的分发配置文件   在App Store上的应用程序。

  2.   
  3. 在项目中设置所有开发/分发配置文件

  4.   
  5. 打开您的项目 - >选择应用目标 - >能力 - >启用应用组 - >选择您在步骤7中创建的应用程序组

  6.   

enter image description here

  
      
  1. 选择扩展程序 - >能力 - >启用应用组 - >选择您在步骤7中创建的应用程序组
  2.   

现在,如果您想在应用和扩展程序之间共享数据,请使用以下代码,

在您的应用中,

let defaults = UserDefaults(suiteName: "group.com.myapp") // Your App Group name
defaults?.set(str_user_token, forKey:"user_token")
defaults?.synchronize()

在您的共享扩展程序文件中,使用以下代码

访问它
let defaults = UserDefaults(suiteName: "group.com.myapp") // Your App Group name
let restoredValue = defaults!.string(forKey: "user_token")

您已全部为Share Extension设置!快乐的编码。 干杯!