我尝试将数据从iPhone应用程序发送到手表套件扩展程序但失败了。 并且不知道该怎么做。
我在模拟器上测试并通过应用程序组发送数据。
这是我的步骤:
在watchkit扩展中添加代码以读取NSUserDefaults数据。 ([NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:)
运行监视工具包应用
我想念什么必要的东西?
或者我应该用另一种方法来做到这一点?
我想做的就是每隔几秒钟从iPhone发送数据。 数据可以是字符串或图像。
由于
答案 0 :(得分:1)
要设置iPhone和iWatch之间的通信,我一直将文件放入共享应用程序组文件夹,并从Watch扩展程序监视它。如果iPhone应用程序有任何更改,它会修改该文件,并会通知Watch扩展程序并对其进行操作。
答案 1 :(得分:1)
你需要:
在两个目标(iPhone和Watch扩展程序)上创建一个应用程序组。确保它已添加到apple developer portal上的应用ID上(有时它不会从Xcode中传递出来)。
从iPhone应用程序写入应用程序组:
NSString *destFolderPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:
@"YOUR_GROUP_STRING"].path;
[UIImageJPEGRepresentation(image, 1.0) writeToFile:[destFolderPath stringByAppendingPathComponent:@"Your_Shared_File_Name.jpg"] atomically:YES];
从扩展程序中读取文件:
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应用之间传递任何过于复杂的内容,则可以轻松使用