`
lkjxshi
  • 浏览: 29202 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

AppleWatch与App间的通信

 
阅读更多

 最近在进行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

 

6
4
分享到:
评论

相关推荐

    Apple Watch开发快速入门教程

    为了实现Apple Watch与iPhone间的通信,开发者需要利用WatchConnectivity框架。它允许在两者之间发送数据,如用户输入、通知或更新应用状态,确保信息同步。 六、独立Watch应用(WatchOS 3+) 自WatchOS 3开始,...

    Apple Watch开发快速入门教程-OC版

    10. **Watch App生命周期**: 了解Apple Watch应用程序的生命周期是至关重要的,包括如何启动、暂停、恢复和终止应用,以及如何处理后台任务和节能优化。 11. **Testing and Debugging**: 使用Xcode的模拟器和真机...

    QQ在线音乐 IOS Swift版 学习源码(AppleWatch版)

    总的来说,这个源码实例提供了丰富的Swift编程和AppleWatch应用开发经验,涵盖了从基本的UI设计到复杂的音频处理和跨设备通信。对于想要提升自己iOS和watchOS开发技能的开发者来说,这是一个非常有价值的资源。

    ios-模仿微信Watch程序.zip

    在iOS App与Apple Watch之间,数据的同步和通信至关重要。WatchKit提供了WKExtensionDelegate协议,通过实现其方法,可以在iOS App和Watch App之间进行消息传递。此外,还可以利用NSUserActivity或WCSession进行更...

    cordova-plugin-watch:用于从javascript(通过MMWormhole)与Apple Watch(watchkit)通信的cordova插件

    Cordova 插件,可通过 MMWormhole 由mutualmobile 从javascript 与Apple Watch(watchkit)进行通信 介绍 这个插件是一个MMWormhole的包装器,它由mutualmobile 通过应用程序组直接从 JavaScript 与 Apple Watch ...

    applewatch-cordova:试用 Apple Watch 和 Cordova

    Cordova通常会利用WatchKit的接口,通过扩展Cordova插件来实现与Apple Watch的通信。 3. **JavaScript 开发**:由于Cordova是基于JavaScript的,所以开发Apple Watch应用时,大部分编码工作将在JavaScript中完成。...

    Heimdal-iOS:iOS App,Today Widget和Apple Watch App,可通过Bluetooth LE打开Hipo的大门

    本文将深入探讨Heimdal-iOS项目,这是一个专为iOS设计的应用程序,结合了Today Widget和Apple Watch App的功能,通过Bluetooth Low Energy(蓝牙LE)技术,用户可以便捷地与名为Hipo的系统进行交互,实现物理空间的...

    iOS俩个app传值

    5. **苹果Watch扩展**: 如果你的应用有Apple Watch配套,可以通过WatchKit扩展来实现与主应用的数据交换。例如,用户在手表上操作后,可以通过`WKInterfaceController`的`openParentApplication:reply:`方法将数据...

    WatchKit-App.zip

    另一个是WatchKit Extension,它运行在Apple Watch上,负责展示界面并与用户交互。这两个组件通过WatchConnectivity框架进行通信,传递数据和命令,确保手表和手机之间的同步。 界面设计是WatchKit开发的重要环节。...

    EMWatchOCDemo:环信SDK与Apple Watch的结合

    EMWatchOCDemo项目是一个基于环信(Easemob)SDK与Apple Watch结合的应用示例,主要展示了如何在Objective-C编程环境下实现iOS应用与Apple Watch之间的通信与交互。在这个项目中,开发者可以学习到如何将即时通讯...

    ios-App-App.zip

    8. **WatchKit**: 如果你的应用有Apple Watch版本,可以与iPhone上的主应用进行通信,提供跨设备的用户体验。 9. **Game Center**: 对于游戏应用,Game Center提供了排行榜、成就和多人游戏等功能,允许游戏数据在...

    James-IOS-AppleWatchExample:仿支付宝口令红包apple watch版

    - **iOS App**:与Apple Watch应用配合的iPhone应用,可以提供数据源和额外的功能。 4. **Storyboard和Interface Builder**: 故事板(Storyboard)是Xcode中的可视化设计工具,用于构建应用的UI。在Watch应用中...

    watchApp:BAOSWatchApp

    在iOS生态系统中,watchApp是为Apple Watch创建的独立应用程序,它能与iPhone上的主应用程序进行交互,提供通知、功能和服务。BAOSWatchApp可能是开发团队为特定业务或用途定制的一个Apple Watch应用实例。 【描述...

    swift-Stargate-通过iPhone桥接实现Mac与Watch的即时通讯

    iPhone可以同时连接Mac和Apple Watch,利用MMWormhole处理与Mac的通信,通过PeerKit处理与Watch的通信。这样,信息可以在这三个设备之间顺畅流动,极大地拓展了应用的可能性。 例如,一个智能健康管理应用可以通过...

    applewatchdocs:Apple Watch 开发者文档

    5. **Watch Connectivity**:为了实现Apple Watch与iPhone之间的数据交换,开发者需要使用Watch Connectivity框架。它提供了发送消息、同步文件、监听状态改变等功能,确保手表应用和手机应用之间的数据一致性。 6....

    watch-calculator:Apple Watch的示例应用

    7. **App Communication**:虽然 Apple Watch 应用可以独立运行,但通常会与 iPhone 上的伴侣应用进行数据交换。在 "watch-calculator" 中,可能有场景需要将计算结果同步到 iPhone 或从 iPhone 获取预设值。 8. **...

    Apple-Watch-Demo

    4. **通信机制**:Apple Watch与iPhone之间通过`WCSession`类进行通信。你可以使用它来传递数据,例如更新界面信息或触发特定操作。必须确保在iPhone的代理应用中设置并激活会话,以便两者能够相互通信。 5. **通知...

    iwatch苹果手表设计模板是一款橙色大气个性的APP应用软件官网模板。_html网站模板_网页源码移动端前端_H5模.rar

    标题中的“iwatch苹果手表设计模板”指的是专为苹果智能手表Apple Watch设计的一款网页模板,用于展示相关的APP应用。这款模板采用了橙色为主色调,强调了活力与现代感,同时结合了“大气”和“个性”的设计风格,...

    WatchConnectivity

    在iOS开发中,WatchConnectivity框架是苹果提供的一个关键组件,用于在Apple Watch与iPhone之间建立通信。这个框架允许开发者在两个设备间传输数据,如消息、文件或者用户界面更新,极大地提升了用户体验。通过...

    swift-专为手表设计的迷你Pomodoro定时器应用采用Swift开发

    2. **WatchKit框架**:Apple Watch应用程序开发主要依赖于WatchKit框架,它提供了用于创建用户界面、处理用户交互和与主应用程序进行通信的API。我们需要掌握InterfaceController,它是WatchKit应用的主要入口点,...

Global site tag (gtag.js) - Google Analytics