标签: watchos-2

我可以通过编程方式创建 WKInterfaceButton 吗?

只是一个简单的问题,如果这可能的话:我可以WKInterfaceButton通过编程方式为 AppleWatch 创建元素吗?或者我是否必须在 InterfaceBuilder 中布局所有内容并且无法在手表上动态添加 UI 元素?

到目前为止,我还没有找到带有 watchOS 2 的 AppleWatch 的任何类似内容并且我不清楚文档

感谢您的任何见解。

swift apple-watch watchos-2

5
推荐指数
1
解决办法
1151
查看次数

如何从扩展委托在 Apple Watch 上呈现模式

我正在更新 Watch OS 2.0 客户端应用程序的手表套件支持。

iOS 应用程序向本地通知添加了自定义操作,如果本地通知触发时手机被锁定,手表将显示自定义按钮。

当用户点击该按钮时,分机委托会使用该WCSession sendMessage:replyHandler:方法向电话发送一条消息。

如果当用户点击操作按钮时手机仍然锁定,我想向用户显示一条消息,说“请解锁您的手机”(有关“东西”的详细信息并不重要。)

然而,在 WatchKit 2.0 中,扩展委托是与界面控制器分开的单独生物,并在手表上运行。

我能找到的所有显示界面控制器的方法,例如 presentAlertControllerWithTitle:message:preferredStyle:actions:WKInterfaceController 的方法。

如何从扩展委托显示新的界面控制器?我试图从文档(和谷歌搜索)中找出这一点,但到目前为止,尽管进行了相当广泛的搜索,但我已经排除了这一点。

ios apple-watch watchos-2

5
推荐指数
1
解决办法
1199
查看次数

如何使用 AppCode 运行/调试 WatchOS 应用程序?

如何使用 AppCode 运行/调试 WatchOS 应用程序?我刚刚将 XCode 项目导入到 AppCode 中 - 无法运行手表模拟器(尽管有主应用程序的选项)。我缺少什么?

ios appcode watchos-2

5
推荐指数
0
解决办法
132
查看次数

iPhone 和 Apple Watch 之间的 WatchConnectivity 超时错误

我正在尝试使用 WatchConnectivity 框架将字符串从 Apple Watch 发送到 iPhone。

\n\n

我启动了两个会话,一个是 WCSession,一个是 HKSession,因为我想在读取心率信息时将其从手表传输到 iPhone。(如果有更好的方法请告诉我)。

\n\n

如果有帮助,我已经发布了我收到的日志消息。

\n\n
2017-04-14 20:01:24.660433-0400 MoodTunes WatchKit Extension[180:16033] [WC] -[WCSession _onqueue_notifyOfMessageError:messageID:withErrorHandler:] AD8F92C9-FCAA-45B0-9B4C-0D5C95B72BEE\n errorHandler: YES with WCErrorCodeTransferTimedOut->IDSErrorTypeTimedOut-\n>IDSResponseTimedOut\nWatch send failed with error Error Domain=WCErrorDomain Code=7017 "Transfer \ntimed out." UserInfo={NSUnderlyingError=0x175a7da0 {Error \nDomain=com.apple.identityservices.error Code=23 "Timed out" UserInfo=\n{NSUnderlyingError=0x1752d4f0 {Error Domain=com.apple.ids.idssenderrordomain \nCode=12 "(null)"}, NSLocalizedDescription=Timed out}}, \nNSLocalizedDescription=Transfer timed out.} \n
Run Code Online (Sandbox Code Playgroud)\n\n

iPhone ViewController.swift

\n\n
import HealthKit\nimport WatchKit\nimport Foundation\nimport CoreLocation\nimport WatchConnectivity\nimport UIKit\n\nclass ViewController: UIViewController, CLLocationManagerDelegate, \nWCSessionDelegate { \n\n@IBOutlet weak var timerLabel: UILabel!\n@IBOutlet weak var milesLabel: UILabel!\n@IBOutlet …
Run Code Online (Sandbox Code Playgroud)

ios swift healthkit watchos-2 watchconnectivity

5
推荐指数
1
解决办法
1444
查看次数

为什么WKInterfacePicker被认为是未声明的类型?

我正在使用Xcode Version 7.0 beta 3.当试图使用WKInterfacePicker时,我收到一个错误.

这是我的WKInterfaceController的代码:

import WatchKit
import Foundation


class RBWelcomeVC: WKInterfaceController {

@IBOutlet var pickerAllWorkouts: WKInterfacePicker!


override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    // Configure interface objects here.
}

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
}

override func didDeactivate() {
    // This method is called when watch view controller is no longer visible
    super.didDeactivate()
}

}
Run Code Online (Sandbox Code Playgroud)

注意我的IBOutlet.当我通过控制从故事板拖动创建它时.它创建了插座并立即将此错误:

 Use of undeclared type 'WKInterfacePicker'
Run Code Online (Sandbox Code Playgroud)

由于这不起作用,我尝试手动创建插座.我键入:

 @IBOutlet …
Run Code Online (Sandbox Code Playgroud)

wkinterfacecontroller watchos-2

4
推荐指数
1
解决办法
1026
查看次数

在Watch应用程序使用的文件中有条件地使用UIKit

我创建了一个我在iOS应用程序和Watch应用程序中使用的模型类 - 它包含在两个目标中.现在我必须UIPasteboard在这个只能使用的类中使用UIKit,这对watchOS是不可用的.虽然我可以毫无问题地将UIKit导入到这个文件中,但是当我使用UIPasteboard它时它将无法编译,因为手表扩展程序不知道它.

如何UIPasteboard在我的手表应用程序可用的类中使用?

我想知道当设备不是Apple Watch时我是否只能运行该代码#available,但这并没有解决问题.

if #available(iOS 7.0, *) {
    UIPasteboard.generalPasteboard()...
    //ERROR: Use of unresolved identifier 'UIPasteboard'
} else {
    //don't use UIPasteboard
}
Run Code Online (Sandbox Code Playgroud)

ios swift watchkit swift2 watchos-2

4
推荐指数
1
解决办法
1058
查看次数

我如何检查watchOS 2是否打开了iPhone上的应用程序,无论应用程序状态如何都能发送NSUserDefaults?

如果打开iPhone上的应用程序,我如何从watchOS 2查看?

我想NSUserDefaults通过手表向iPhone 发送消息sendMessage(当收到消息时能够更新手机上的界面)当两个应用程序都在运行时我想发送NSUserDefaults即使只有watchOS 2应用程序正在运行.

根据我的阅读,我发现了这个:

/** The counterpart app must be reachable for a send message to succeed. */
@property (nonatomic, readonly, getter=isReachable) BOOL reachable;
Run Code Online (Sandbox Code Playgroud)

它总是可以从我检查的内容到达.

ios watchkit ios9 watchos-2

4
推荐指数
1
解决办法
2635
查看次数

使用Xcode上的App和Extension复制WatchOS2的目标

我有一个带有WatchOS2目标的项目和一个扩展.我想复制WatchOS App目标和扩展.但是,当我复制WatchOS App目标时,它仍然链接到旧的扩展.由于我们无法再访问WatchOS App的构建阶段,因此无法在Embed App Extension阶段进行更改.

初始状态

  • WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
  • WatchAppExtension1

最终国家

  • WatchAppTarget1(嵌入扩展 - WatchAppExtension1)
  • WatchAppExtension1
  • WatchAppTarget-Duplicate(嵌入扩展仍然指向 - WatchAppExtension1)
  • WatchAppExtension重复的

无论如何更改WatchOS应用程序目标以接受重复的扩展作为其嵌入的选择(除了手动编辑.pbxproj)

xcode ios xcode-scheme apple-watch watchos-2

4
推荐指数
1
解决办法
695
查看次数

何时在WCSession对象上调用activateSession()

我想知道什么时候会在手表和iOS设备上的WCSession对象上调用activateSession().

在文档中它说:

始终在调用任何与会话相关的方法之前分配代理并激活会话.必须先配置并激活会话,然后才能发送消息或获取有关连接状态的信息.

起初我以为我把我的代码初始化为会话:

 if (WCSession.isSupported()) {
        session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }
Run Code Online (Sandbox Code Playgroud)

在iOS设备上的viewDidLoad和手表端的willActivate中.

它有效...但我不认为这是一个很好的解决方案.我对应用程序生命周期还不太熟悉,但据我所知,每次应用程序打开时都会调用它们.

每次打开其中一个应用程序时,是否会导致"重新连接"?

放置该代码的好地方在哪里?

lifecycle swift watchos-2 wcsession

4
推荐指数
1
解决办法
1146
查看次数

使用Cocoapods + WatchOS 2目标

我有一个iOS项目,有很多pod,大约二十个.我想集成一个watchOS 2应用程序,但CocoaPods要求podspec包含对watchOS的支持(如下所示:http://blog.cocoapods.org/CocoaPods-0.38/)

起初,我以为我可以分叉所有未更新的pod,将我的podfile指向那些分叉的repos,bob是你的叔叔.问题是我正在使用的一些pod是关闭/不公开的.有没有办法让我不为watchOS目标构建主应用程序的pod?就像使用目标隔离一样?:

target "Watch" do end

我似乎无法获得构建的潜在解决方案,因为它仍然试图构建pod.我也试过这个回购,没有运气:https://github.com/orta/cocoapods-expert-difficulty

cocoapods apple-watch watchkit watchos-2

4
推荐指数
1
解决办法
2897
查看次数