Я сделал watchApp в существующем приложении IOS
я успешно передал данные из IOS в WatchOS и получил данные в watch OS через метод делегата, как вы видите в кодах ниже.
Моя проблема в том, что данные не сохраняются в WatchOS. в любое время, когда мне нужно использовать watchApp, мне сначала нужно открыть приложение IOS, а затем оно обновляет watchApp.
Я попробовал AppGroups, но похоже, что он больше не работает на watchOS 2.0+.
так как я могу сохранить данные на watchOS и обновить их только через updateApplicationContextWithApplicationContext
?
NSMutableDictionary * cardDataForWatch = [[NSMutableDictionary alloc] init];
for (Card * card in self.cards)
{
NSMutableDictionary<NSString *, id> *storedData = [[NSMutableDictionary alloc] init];
Store * store = [StoreHelper getStoreForCard:card];
NSString * color = [ColorHelper hexStringForColor:[[store getColorPalette] getHighlightColor]];
NSString * barcode = [card barcode];
if (color != nil)
{
[storedData setValue:color forKey:@"color"];
}
if (barcode != nil)
{
[storedData setValue:barcode forKey:@"barcode"];
}
UIImageView * imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(0, 0, 100, 90);
[BarcodeRenderer renderBarcode:card to:imageView andLabel:nil];
NSData * barcodeImage = UIImagePNGRepresentation([imageView image]);
[storedData setValue:barcodeImage forKey:@"barcodeImage"];
[cardDataForWatch setValue:storedData forKey:[card store]];
}
@try {
[[WatchSessionManager sharedManager] updateApplicationContextWithApplicationContext:cardDataForWatch error:nil];
затем я получаю данные в watchOS через метод делегата:
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any])
{
print("? \(applicationContext)")
self.delegate?.dataFromIOS(DataSource(data: applicationContext))
}