gpt4 book ai didi

ios - 如何从 watchOS 2 唤醒 iPhone 应用程序?

转载 作者:技术小花猫 更新时间:2023-10-29 10:33:26 27 4
gpt4 key购买 nike

我有一个应用程序具有非常丰富的网络层,我的 Apple Watch 应用程序依赖于所有型号。不幸的是,该应用程序的模块化程度不足以使该层在 watch 应用程序中可用。

我通过使用 openParentApplication 解决了这个问题:唤醒 iPhone 应用程序,执行请求并返回结果。

在 watchOS 2 中,这个方法消失了,我应该使用 WatchConnectivity。使用它的最佳方法是发送 userInfo 字典。

但是我怎样才能唤醒 iPhone 应用程序来处理我的请求呢?要获得有关新用户信息的通知,我必须使用 WCSessionDelegate,为此我需要一个 WCSession 对象。但是我什么时候应该创建它?以及如何唤醒应用程序?

最佳答案

我就此询问了一位 Apple 工程师并得到以下提示:iOS 应用程序应在后台任务中启动。所以以下对我来说非常有效:

UIApplication *application = [UIApplication sharedApplication];

__block UIBackgroundTaskIdentifier identifier = UIBackgroundTaskInvalid;
dispatch_block_t endBlock = ^ {
if (identifier != UIBackgroundTaskInvalid) {
[application endBackgroundTask:identifier];
}
identifier = UIBackgroundTaskInvalid;
};

identifier = [application beginBackgroundTaskWithExpirationHandler:endBlock];

将此添加到您的 session:didReceiveMessage:session:didReceiveMessageData: 方法以启动后台任务,超时时间为三分钟。

关于ios - 如何从 watchOS 2 唤醒 iPhone 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618550/

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