天道酬勤,学无止境

apple-watch

关闭/停用 WCSession(Close/Deactivate WCSession)

问题 我正在开发一个带有手表扩展(watchOS 2)的 iPhone 应用程序(iOS 9 beta),并将数据从手表传递到手机,我正在使用 WCSession。 我有 2 个使用 WCSessions 的不同视图控制器,因此对于每个控制器,我都在实例化新的 WCSession 对象。 对于第一个视图控制器,它工作正常,但是当我想在第二个视图控制器中接收消息时,仍然很少有初始消息被发送到第一个控制器。 有什么方法可以在转到第二个控制器之前停用/禁用第一个视图控制器的会话? 或者我还有其他选择吗? 谢谢! 回答1 当您来回传递数据时,您正在发送字典。 如果您指定好的键,您可以获得每个 ViewController 的适当数据。 例子: 视图控制器1: [session updateApplicationContext:@{@"viewController1": @"item1"} error:&error]; 视图控制器2: [session updateApplicationContext:@{@"viewController2": @"item2"} error:&error]; 当您接收数据时: - (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull

2022-01-16 15:18:48    分类:技术分享    ios   session   apple-watch   watchos-2

Close/Deactivate WCSession

I am developing an iPhone app (iOS 9 beta) with watch extension (watchOS 2), and to pass the data from watch to phone I am using WCSession. I have 2 different view controllers using WCSessions, so for each of the controller I am instantiating new WCSession object. For the first view controller it works fine, but when I want to receive messages in second view controller, few initial messages are still being sent to first controller. Is there any way I can deactivate / disable session of first view controller before going to second controller? Or are there any other options I should look into

2022-01-16 08:09:37    分类:问答    ios   session   apple-watch   watchos-2

在手表套件中异步下载表格中的图像(Download images in a Table in watch kit async)

问题 我正在开发一个WatchKit应用程序,我需要获取一些图像(有时是 50 个缩略图)来完成一个Table 。 我正在下载iOS应用程序中的图像并将它们传递给WatchKit Extension ,但我遇到了问题。 首先,我有三个按钮,如果我按下其中一个按钮,我会看到一个带有一些元素的Table ,它们都带有image和label 。 主要问题是当我下载这些图像并按下一个项目以查看其详细信息时, main thread被阻塞并且应用程序在下载所有图像之前不会push送到DetailsController 。 有没有人处理过包含许多元素和图像的表格? 你是怎么解决这个问题的? 谢谢 回答1 我遇到了一个非常相似的问题,这就是我解决它的方法。 如果有人有更好的解决方案,我会很感兴趣,但这工作得很好。 基本上,您需要估计传输每张图像的延迟时间,并确保您只经常发送它们。 如果您尝试一次发送它们,您将阻塞主线程。 我试图将我的代码简化为这个解决方案的基本部分。 你不需要像我一样命名你的图像。 关键部分是如何使用队列。 当您需要停止发送图像时,请调用cancelCurrentImageProcessQueue 。 @interface GPWatchDataController() @property NSMutableArray* stack; @property

2022-01-13 23:11:04    分类:技术分享    ios   objective-c   watchkit   apple-watch   wkinterfaceimage

Download images in a Table in watch kit async

I am developing a WatchKit app, I need to get some images(sometimes 50 thumbnails) to fulfill a Table. I am downloading the images in the iOS app and passing them to the WatchKit Extension, but I am having problems. First, I have three buttons, if I press one of them I see a Table with some elements, all of them with image and label. The main problem is when I am downloading those images and I press one item to see its detail, the main thread is blocked and the app doesn't make push to the DetailsController until all the images are downloaded. Has anyone dealt with a Table with many elements

2022-01-13 20:00:39    分类:问答    ios   objective-c   watchkit   apple-watch   wkinterfaceimage

AppleWatch 消息 URL 可以硬编码但不能使用变量(AppleWatch Messages URL works hard coded but not with variables)

问题 TLDR当我将电话号码硬编码到一个 URL 中时,它会在监视消息中正确打开,但是当我使用一个变量字符串,其中的数字以完全相同的方式输入时,它不会。 例子: NSURL(string: "sms:/open?addresses=8888888888,9999999999,3333333333&body=Test") 上面的代码有效,但下面的代码无效: let hardCode = "8888888888,9999999999,3333333333" NSURL(string: "sms:/open?addresses=\(hardCode)&body=Test") 完整详细信息:我正在从变量创建一个 URL,以在 Apple Watch 上打开带有预填充内容的消息。 我从通讯录中获取电话号码并将它们存储在一个数组中。 它们以这种格式提供: (###) ###-#### 但必须是########## 我通过将电话号码硬编码到 URL 中来测试代码,它适用于所有联系人和完整的正文: if let urlSafeBody = urlSafeBody, url = NSURL(string: "sms:/open?addresses=8888888888,9999999999,3333333333&body=\(urlSafeBody)") { print("FINAL URL: \

2022-01-13 19:33:41    分类:技术分享    swift   apple-watch   nsurl

WCSession - PayloadTooLarge(WCSession - PayloadTooLarge)

问题 苹果文档显示: PayloadTooLarge - 指示正在发送的项目超出最大大小限制的错误。 数据字典和文件都可能发生这种类型的错误。 在 watchOS 2.0 及更高版本中可用。 有谁知道这两种方法用于将数据从手表传输到手机的最大大小限制是多少?: func transferUserInfo(_ userInfo: [String : AnyObject]) -> WCSessionUserInfoTransfer 和 func transferFile(_ file: NSURL, metadata metadata: [String : AnyObject]?) -> WCSessionFileTransfer 我在任何地方都找不到它的记录。 谢谢! 回答1 关于用户信息 转移用户信息: 甚至对于并发症信息: transferCurrentComplication用户信息: 大小限制 (iOS 9) 为65.5 kB ,您可以使用的消息也是如此 发信息: 尺寸限制为 更新应用上下文: 是262 KB 。 关于 传输文件: ccjensen 的回答是正确的,因为我的经验没有实际限制,即使是 WCSession 错误代码部分中提到的 Apple 文档,文件可能太大: WCErrorCodePayloadTooLarge 指示正在发送的项目超过最大大小限制的错误。

2022-01-13 13:56:28    分类:技术分享    ios   watchkit   apple-watch   watchos-2

在不提示手表的情况下检查用户是否连接了 AppleWatch(Check if user has AppleWatch connected without prompting the watch)

问题 我们正在使用Google Analytics ,想知道有多少用户拥有AppleWatch 。 我已经在 Stack 中搜索了答案,而经常出现的答案是使用这个: if WCSession.isSupported() { // check if the device support to handle an Apple Watch let session = WCSession.defaultSession() session.delegate = self session.activateSession() // activate the session if session.paired { // Check if the iPhone is paired with the Apple Watch // Do stuff } } 这样做的问题是它提示用户“接受” AppleWatch上的应用程序。 诚然,无论用户是否接受,if 语句都是正确的,但我不希望用户抱有希望,认为该应用程序支持AppleWatch 。 我只是想知道用户是否有 AppleWatch,我不想使用它。 然而。 iOS 设备上是否有一个属性可以访问以显示用户是否已连接或曾经连接过AppleWatch ,而无需通过 Watch 提示用户? 回答1

2022-01-13 12:06:47    分类:技术分享    ios   watchkit   apple-watch   watchos-2

无法安装错误:无效的捆绑包 - 没有 Apple Watch 二进制文件 [重复](Failed to install error: Invalid Bundle - No Apple Watch Binary [duplicate])

问题 这个问题在这里已经有了答案: 无法安装应用程序错误:Invalid Bundle - No Apple Watch Binary 10 个答案 6年前关闭。 更新至 iOS App + Apple Watch App 可在本地运行,但通过 App Store 下载时,用户抱怨 Watch App 安装失败,并附上以下屏幕截图。 如何解决这个问题? 回答1 重新启动 Apple Watch。 据我所知,这似乎是苹果需要解决的问题。

2022-01-13 11:38:01    分类:技术分享    ios   app-store   apple-watch

Failed to install error: Invalid Bundle - No Apple Watch Binary [duplicate]

This question already has answers here: Failed to install app error: Invalid Bundle - No Apple Watch Binary (10 answers) Closed 6 years ago. Update to iOS App + Apple Watch App works locally, but when downloaded via the App Store, users complain that the Watch App fails to install, with the following screenshot attached. How can this problem be resolved?

2022-01-13 07:54:39    分类:问答    ios   app-store   apple-watch

WatchKit handleActionWithIdentifier:不调用 forRemoteNotification(WatchKit handleActionWithIdentifier : forRemoteNotification is not called)

问题 我有一个用于 Apple Watch 通知的简单静态接口,如下所示: 并且在 PushNotificationPayload 中如下: { "aps": { "alert": { "body": "123You have a new message", "title": "myApp" }, "category": "respond" }, "WatchKit Simulator Actions": [ { "title": "View Message", "identifier": "viewMsgBtn" } ], "customKey": "customKey" } 并在 InterfaceController 中实现方法 - (void)handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)remoteNotification { NSLog(@"Handling remote notification: %@ with identifier: %@", remoteNotification, identifier); // [self.lbTest setText:[NSString stringWithFormat:@"Notification

2022-01-13 04:10:57    分类:技术分享    push-notification   apple-watch