【问题标题】:Communication with watch kit extension and iPhone app与手表套件扩展和 iPhone 应用程序的通信
【发布时间】:2014-11-21 08:38:26
【问题描述】:

我尝试将数据从 iPhone 应用程序发送到手表套件扩展,但失败了。 而且不知道该怎么做。

我在模拟器上测试并通过应用组发送数据。

这是我的步骤:

  1. 从苹果下载手表套件目录示例应用
  2. 为 iPhone 应用和 wtach 工具包扩展添加应用组 (XXX.XXX.XXX)
  3. 为 NSExtensionAttributes 添加 RequestOpenAccess:YES(监视套件扩展)
  4. 向 iPhone 应用程序添加一个按钮,该按钮将使用特定套件名称向 NSUserDefaults 写入一个值
  5. 在 watchkit 扩展中添加代码以读取 NSUserDefaults 数据。 ([NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:)

  6. 运行手表套件应用

  7. 在 iPhone 模拟器中手动点击 Catalog 应用
  8. 点击第4步添加的按钮
  9. 在 watchkit 扩展中添加断点以查看 NSUserDefaults 值是否更改
  10. 什么都没有发生

我错过了哪些必要的事情?

或者我应该使用其他方式来做到这一点?

我想做的就是每秒钟从 iPhone 发送数据来观看。 数据可以是字符串或图像。

谢谢

【问题讨论】:

  • 你能分享一些代码吗?您确定您为应用组正确编写了文件吗?

标签: ios objective-c iphone


【解决方案1】:

为了设置 iPhone 和 iWatch 之间的通信,我一直在将文件放入共享应用程序组文件夹并从 Watch 扩展程序监视它。如果 iPhone 应用程序有任何更改,它会修改文件,Watch 扩展程序将收到通知并对其进行处理。

【讨论】:

    【解决方案2】:

    你需要:

    1. 在两个目标(iPhone 和 Watch 扩展)上创建一个应用组。确保它已添加到您的应用 ID apple developer portal(有时它不能从 Xcode 顺利通过)。

    2. 从 iPhone 应用程序写入应用程序组:

      NSString *destFolderPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:
                                 @"YOUR_GROUP_STRING"].path;
      [UIImageJPEGRepresentation(image, 1.0) writeToFile:[destFolderPath stringByAppendingPathComponent:@"Your_Shared_File_Name.jpg"] atomically:YES];
      
    3. 从扩展中读取文件:

      UIImage *image;
      NSURL *groupURL = [[NSFileManager defaultManager]
                     containerURLForSecurityApplicationGroupIdentifier:
                     @"YOUR_GROUP_STRING"];
      
      NSString *imagePath = [groupURL URLByAppendingPathComponent:@"Your_Shared_File_Name.jpg"].path;
      }
      
      if( [[NSFileManager defaultManager] fileExistsAtPath: imagePath]){
          image = [[UIImage alloc] initWithContentsOfFile: imagePath];
      }
      

    一般情况下,我建议您使用MMWormhole,如果您不需要在 Watch 和 Host 应用之间传递任何过于复杂的内容,则可以轻松使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多