gpt4 book ai didi

ios - Apple Watch - 仅在手机上的应用程序处于事件状态时获取数据

转载 作者:可可西里 更新时间:2023-11-01 05:33:43 26 4
gpt4 key购买 nike

我已经使用模拟器开发并部署了我们的 Apple Watch Extension App。它已经获得批准,现在可以在 App Store 上使用,所以 Apple 很高兴!

今天我拿到了一 block 实体 watch ,发现了一个真正的问题——我只能和 watch 手机交互,如果我手机上的应用程序不仅是打开的,而且是事件的……从而打败了对象。

我正在手机应用程序的 appDelegate 中实现以下方法作为代理来获取我的实时数据并将其返回到 watch 。

我基本上将请求传递给 appDelegate - 我检查应该返回哪些数据的 userInfo,然后电话应用程序处理业务并返回一个 userInfo 字典,其中包含 watch 要解析的数据:

-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {

if ([userInfo objectForKey:@"GetWatchData"]) {

[TPWatchData configureWatchData:^(BOOL success) {

if (success) {

reply([TPWatchData watchData]);

} else {

reply(@{@"FAIL":@"AppDelegate"});

}


}];

}

}

我在 watch extension 上使用这种方法在 watch 中调用它(这只是我进行的调用的一个示例):

    [TPWPlanList openParentApplication:@{@"GetWatchData":@1} reply:^(NSDictionary *replyInfo, NSError *error) {

if ([replyInfo objectForKey:@"Overview"]) {

if (error.code == 0) {

if ([replyInfo objectForKey:@"FAIL"]) {

// Something failed

} else {

self.dic_overview = [replyInfo objectForKey:@"Overview"];

//[self reloadPlanListTable];

}

} else {

// Something failed

}

}

}];

如前所述,这在模拟器中完美运行,并且实际上在物理 watch 上完美运行 - 但前提是我在手机上打开主应用程序并处于事件状态。应用程序在后台或手机显示屏休眠的那一刻,使用上述方法不会传递任何数据。

有什么想法吗?我显然做错了什么,但在它咬我之前,我已经设法让整个事情在真实设备上直播。

非常感谢!

最佳答案

如果您的 openParentApplication:reply: 方法仅在主机 iOS 应用程序处于事件状态时才有效,我几乎可以保证您的 iOS 应用程序在有机会回复之前在后台被杀死。

解决方案是让应用尽快响应请求,然后完成您的正常任务。开发者论坛中有关于此的注释:https://devforums.apple.com/thread/264473?tstart=0

我还写了一篇博客文章,详细介绍了我在论坛中添加注释之前使用的方法:http://www.fiveminutewatchkit.com/blog/2015/3/11/one-weird-trick-to-fix-openparentapplicationreply

关于ios - Apple Watch - 仅在手机上的应用程序处于事件状态时获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29848353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com