最近在进行applewatch的开发,打算做一个微信的demo出来。
由于数据处理和业务逻辑都会放在app端,watchkit只是用来展示用途,在app处于非激活的状态下无法进行请求的问题还未解决,这个demo只是watch和app简单的相互传值通信。其中app端中CFNotificationCenterPostNotification 方法中的userInfo参数无法成功传值到watch端中,还在尝试用其他的方法实现,解决到这个问题的朋友麻烦留言探讨一下实现方案。
从app端传值到watch端:
发送端:
CFStringRef observedObject = CFSTR("xiaok"); NSMutableDictionary *userInfo2 = [NSMutableDictionary new]; [userInfo2 setValue:@"PicName" forKey:@"PicName"]; [userInfo2 setValue:@"Source" forKey:@"Source"]; CFDictionaryRef userInfo = (__bridge CFDictionaryRef)(userInfo2); CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(),(__bridge CFStringRef)@"xiaok",observedObject,userInfo,YES );
接受端:
- (void) watchForDataChanges { // Listen for notifications on Darwing CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (__bridge const void *)(self), NotificationReceivedCallback, CFSTR("xiaok"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cocoaNotificationCallBack) name:@"playersChangedCocoa" object:nil]; } static void NotificationReceivedCallback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) { [[NSNotificationCenter defaultCenter] postNotificationName:@"playersChangedCocoa" object:nil]; } void darwinNotificationCenterCallBack() { NSLog(@"Notification received from iPhone app!"); // Go from Darwin to Cocoa land [[NSNotificationCenter defaultCenter] postNotificationName:@"playersChangedCocoa" object:nil]; } - (void) cocoaNotificationCallBack { NSLog(@"Notification received from ourselves in Cocoa"); [self.displayLB setText:@"app点击了噢"]; }
从watch传值到app端:
发送端:
- (IBAction)btnClick1 { [WKInterfaceController openParentApplication:@{@"tag":@"1"} reply:^(NSDictionary *replyInfo, NSError *error) { }]; }
接受端:在appdelegate.m
-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply { NSString *type = userInfo[@"tag"]; [[NSNotificationCenter defaultCenter] postNotificationName:@"WATCH_CLICK" object:type]; }
demo github:https://github.com/lkjxshi/WatchToAppDemo.git
相关推荐
为了实现Apple Watch与iPhone间的通信,开发者需要利用WatchConnectivity框架。它允许在两者之间发送数据,如用户输入、通知或更新应用状态,确保信息同步。 六、独立Watch应用(WatchOS 3+) 自WatchOS 3开始,...
10. **Watch App生命周期**: 了解Apple Watch应用程序的生命周期是至关重要的,包括如何启动、暂停、恢复和终止应用,以及如何处理后台任务和节能优化。 11. **Testing and Debugging**: 使用Xcode的模拟器和真机...
总的来说,这个源码实例提供了丰富的Swift编程和AppleWatch应用开发经验,涵盖了从基本的UI设计到复杂的音频处理和跨设备通信。对于想要提升自己iOS和watchOS开发技能的开发者来说,这是一个非常有价值的资源。
在iOS App与Apple Watch之间,数据的同步和通信至关重要。WatchKit提供了WKExtensionDelegate协议,通过实现其方法,可以在iOS App和Watch App之间进行消息传递。此外,还可以利用NSUserActivity或WCSession进行更...
Cordova 插件,可通过 MMWormhole 由mutualmobile 从javascript 与Apple Watch(watchkit)进行通信 介绍 这个插件是一个MMWormhole的包装器,它由mutualmobile 通过应用程序组直接从 JavaScript 与 Apple Watch ...
Cordova通常会利用WatchKit的接口,通过扩展Cordova插件来实现与Apple Watch的通信。 3. **JavaScript 开发**:由于Cordova是基于JavaScript的,所以开发Apple Watch应用时,大部分编码工作将在JavaScript中完成。...
本文将深入探讨Heimdal-iOS项目,这是一个专为iOS设计的应用程序,结合了Today Widget和Apple Watch App的功能,通过Bluetooth Low Energy(蓝牙LE)技术,用户可以便捷地与名为Hipo的系统进行交互,实现物理空间的...
5. **苹果Watch扩展**: 如果你的应用有Apple Watch配套,可以通过WatchKit扩展来实现与主应用的数据交换。例如,用户在手表上操作后,可以通过`WKInterfaceController`的`openParentApplication:reply:`方法将数据...
另一个是WatchKit Extension,它运行在Apple Watch上,负责展示界面并与用户交互。这两个组件通过WatchConnectivity框架进行通信,传递数据和命令,确保手表和手机之间的同步。 界面设计是WatchKit开发的重要环节。...
EMWatchOCDemo项目是一个基于环信(Easemob)SDK与Apple Watch结合的应用示例,主要展示了如何在Objective-C编程环境下实现iOS应用与Apple Watch之间的通信与交互。在这个项目中,开发者可以学习到如何将即时通讯...
8. **WatchKit**: 如果你的应用有Apple Watch版本,可以与iPhone上的主应用进行通信,提供跨设备的用户体验。 9. **Game Center**: 对于游戏应用,Game Center提供了排行榜、成就和多人游戏等功能,允许游戏数据在...
- **iOS App**:与Apple Watch应用配合的iPhone应用,可以提供数据源和额外的功能。 4. **Storyboard和Interface Builder**: 故事板(Storyboard)是Xcode中的可视化设计工具,用于构建应用的UI。在Watch应用中...
在iOS生态系统中,watchApp是为Apple Watch创建的独立应用程序,它能与iPhone上的主应用程序进行交互,提供通知、功能和服务。BAOSWatchApp可能是开发团队为特定业务或用途定制的一个Apple Watch应用实例。 【描述...
iPhone可以同时连接Mac和Apple Watch,利用MMWormhole处理与Mac的通信,通过PeerKit处理与Watch的通信。这样,信息可以在这三个设备之间顺畅流动,极大地拓展了应用的可能性。 例如,一个智能健康管理应用可以通过...
5. **Watch Connectivity**:为了实现Apple Watch与iPhone之间的数据交换,开发者需要使用Watch Connectivity框架。它提供了发送消息、同步文件、监听状态改变等功能,确保手表应用和手机应用之间的数据一致性。 6....
7. **App Communication**:虽然 Apple Watch 应用可以独立运行,但通常会与 iPhone 上的伴侣应用进行数据交换。在 "watch-calculator" 中,可能有场景需要将计算结果同步到 iPhone 或从 iPhone 获取预设值。 8. **...
4. **通信机制**:Apple Watch与iPhone之间通过`WCSession`类进行通信。你可以使用它来传递数据,例如更新界面信息或触发特定操作。必须确保在iPhone的代理应用中设置并激活会话,以便两者能够相互通信。 5. **通知...
标题中的“iwatch苹果手表设计模板”指的是专为苹果智能手表Apple Watch设计的一款网页模板,用于展示相关的APP应用。这款模板采用了橙色为主色调,强调了活力与现代感,同时结合了“大气”和“个性”的设计风格,...
在iOS开发中,WatchConnectivity框架是苹果提供的一个关键组件,用于在Apple Watch与iPhone之间建立通信。这个框架允许开发者在两个设备间传输数据,如消息、文件或者用户界面更新,极大地提升了用户体验。通过...
2. **WatchKit框架**:Apple Watch应用程序开发主要依赖于WatchKit框架,它提供了用于创建用户界面、处理用户交互和与主应用程序进行通信的API。我们需要掌握InterfaceController,它是WatchKit应用的主要入口点,...