标签: watchkit

12
推荐指数
1
解决办法
2756
查看次数

Apple Watch的预处理器宏?

我正在看Apple的Lister(Apple Watch,iOS和OS X)样本.该示例对iOS和OS X执行测试:

#import <TargetConditionals.h>

#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)

@import ListerKit;

#elif TARGET_OS_MAC

@import ListerKitOSX;

#endif
Run Code Online (Sandbox Code Playgroud)

但是,没有测试TARGET_OS_WATCH或类似.Grepping for watchin TargetConditionals.h不会发出命中:

$ cat /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
  /SDKs/iPhoneOS7.1.sdk/usr/include/TargetConditionals.h | grep -i watch
$
Run Code Online (Sandbox Code Playgroud)

TargetConditionals.h,我知道有:

    These conditionals specify in which Operating System the generated code will
    run. The MAC/WIN32/UNIX conditionals are mutually exclusive.  The EMBEDDED/IPHONE 
    conditionals are variants of TARGET_OS_MAC. 

        TARGET_OS_MAC           - Generate code will run under Mac OS
        TARGET_OS_WIN32         - Generate code will run under …

preprocessor ios c-preprocessor watchkit watchos-2

12
推荐指数
3
解决办法
7242
查看次数

WKInterfaceLabel的已安装和隐藏属性之间的区别

有谁知道Installed&Hidden属性之间有什么区别WKInterfaceLabel

它们都显示/隐藏标签.

在此输入图像描述

watchkit

12
推荐指数
1
解决办法
1197
查看次数

在展示WKInterfaceController时,如何更改用于关闭控制器的标题的颜色?

在我的手表应用程序中,在显示控制器后presentControllerWithNames:contexts:,是否可以更改状态栏中标题的颜色?例如,在Apple的WatchKit Catalog样本中,他们有一个控制器,它们以模式方式呈现,并将"Dismiss"设置为标题.在故事板中,此控制器的标题似乎应用了全局色调,但在模拟器中运行应用程序时,颜色默认为白色.

如果可能的话,我如何让一个呈现的WatchKit控制器尊重全局色调?

编辑:为了清晰起见附加截图.Apple Watch模拟器与storyboard接口控制器相比

objective-c apple-watch watchkit

12
推荐指数
2
解决办法
2584
查看次数

如果屏幕被锁定或活动应用程序更改,HKWorkoutSession不会恢复自定义锻炼应用程序

我有一个watchOS 2应用程序,在运行期间显示健康数据.我使用HKWorkoutSession开始锻炼,如下所示:

self.workoutSession = HKWorkoutSession(activityType: .Running, locationType: .Outdoor)
self.workoutSession!.delegate = self;
self.healthStore.startWorkoutSession(self.workoutSession!)
Run Code Online (Sandbox Code Playgroud)

当屏幕关闭一段时间后,这会使我的应用程序保持在前台,用户稍后再次查看它.

现在让我们说在锻炼期间,用户切换到另一个应用程序或手表屏幕锁定(由于手表没有足够紧固),然后用户通过双击数字表冠重新启动我正在运行的应用程序.该应用程序从中断处继续恢复并继续按预期获取健康数据,但我的应用程序将不再保留在前台.锻炼仍在进行中,因为在表盘上我仍然可以看到顶部的锻炼图标,心率监测器继续收集心率数据,但应用程序拒绝留在前台.

有没有人知道如何在锻炼期间将锻炼应用程序恢复到前台,即使屏幕锁定或用户切换到其他应用程序?

healthkit watchkit watchos-2

12
推荐指数
1
解决办法
331
查看次数

无法解密类Employee的对象(NS.object.0); 该类可以在源代码中定义,也可以在未链接的库中定义

我试图通过序列化数组将一系列'Employee'对象iPhone传递给Apple Watch:

NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:employees];
Run Code Online (Sandbox Code Playgroud)

并在Watch侧进行反序列化:

NSMutableArray *employees = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];
Run Code Online (Sandbox Code Playgroud)

这是'员工'类:

@interface Employee : NSManagedObject
@property (nonatomic, retain) NSNumber * employeeID;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * age;
@property (nonatomic, retain) NSString * address;
@property (nonatomic, retain) NSString * designation;
@property (nonatomic, retain) NSString * teamName;
@property (nonatomic, retain) NSString * gender;
@property (nonatomic, retain) NSNumber * dateOfJoining;
@end
Run Code Online (Sandbox Code Playgroud)

我是否必须在Watch端进行任何更改才能修复此错误?

objective-c nskeyedarchiver ios nskeyedunarchiver watchkit

12
推荐指数
2
解决办法
5124
查看次数

iOS WKWebView JS在后台应用时不会更新属性修改

嘿,我有一个带有Watch Extension的iOS应用程序.启动Apple Watch应用程序时,它会启动iPhone应用程序并通过sendMessage每隔几秒钟发送一次呼叫来保持活动状态.然后iPhone应用程序导航到WKWebView中的网站,每隔几秒检查一次内容,然后将一些数据发送到Apple Watch以便在那里显示.

在Apple Watch上显示不断更新的内容非常正常,我在iPhone上获取数据:

self.webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",
                                   completionHandler: { (html: Any?, error: Error?) 

. . . //splitting html content into TFHppleElements

self.contentArray.add((element.search(withXPathQuery: "//div[contains(@class, 'article-title')]")[0] as AnyObject).content)
Run Code Online (Sandbox Code Playgroud)

我每5秒跑一次.一旦article-title更改中的文本,我的手表上就会显示更改.作品.

这些元素都包含类似的内容,style="z-index: 206; height: ...并且我通过抓取属性然后将其向下细分来成功解析它.

let styleContainer = element.attributes["style"] as! String
var firstHalf = styleContainer.components(separatedBy: "; height:")
...
Run Code Online (Sandbox Code Playgroud)

我使用z-index值对Apple Watch上的表行进行排序,但在1-3次更新后,所有元素的z-index都停止更新.内容(如文章标题)仍在更新,所以数据流肯定有效,但我想知道为什么z-index'保持不变.起初我认为这是我的排序或转移到Apple Watch时的一个问题,但我无法确定这个问题 - 当我在iPhone上运行应用程序时,它总是得到正确的索引,但是当我跑该应用程序通过在手表上启动它,出现上述问题.

经过几天的数据结构混乱(仍然认为错误在我身边)它终于打动了我:当应用程序在后台启动时,页面上的z-index本身没有得到更新.我通过在我的手表上启动应用程序并像往常一样得到错误的z-index来检查这一点但是我保持Watch应用程序打开并在iPhone上启动应用程序 - 我看到WKWebView根据他们的z更新元素的顺序-index然后我突然得到了每个元素的正确z-index,即使在按下主页按钮之后也是如此.这解释了很多,但仍然无法帮助我解决问题.

我如何欺骗WKWebView让JS在后台运行时更新所有元素z-index?我觉得奇怪的是,在短时间内打开iPhone应用程序后不会出现此问题,但我不能要求我的用户每次想要访问Watch应用程序时打开并"最小化"应用程序Watch应用程序的目的是将手机放在口袋里.

通过sendMessage调用viewDidLoad 激活iPhone应用程序,因此我可以指出在手动启动应用程序和通过Watch执行此操作之间的真正区别.Javascript本身也可以在后台运行,那么除了z-index属性之外,为什么一切都会更新?防止运行背景的"图形"更新在保持电池寿命方面是可以理解的,但也不是文本"图形"吗?如果它是手动启动的话,为什么家用按钮应用会有所不同呢?

删除因为下面只发生一次,很奇怪.

编辑:好的,所以实际上索引值会发生变化,但每当一篇文章被推到顶部时,它会转到与任何文章的最高值相同的值而不更新其他文章的值.例:

Before:
A1: 26
A2: 27
A3: 28
A4: 29
After pushing …
Run Code Online (Sandbox Code Playgroud)

javascript iphone ios watchkit

12
推荐指数
1
解决办法
593
查看次数

如何获得WatchOS4 heartRateVariabilitySDNN并使用它?

我正在尝试使用heartRateVariabilitySDNN.我通过查询成功获取heartRate,并使用以下代码获取heartRateVariabilitySDNN但不知道它是如何工作的.此外,没有关于此查询或Apple示例代码的正确文档.

func createheartRateVariabilitySDNNStreamingQuery(_ workoutStartDate: Date) -> HKQuery? {

    let typeHeart = HKQuantityType.quantityType(forIdentifier: .heartRateVariabilitySDNN)
    let predicate: NSPredicate? = HKQuery.predicateForSamples(withStart: workoutStartDate, end: nil, options: HKQueryOptions.strictEndDate)

    let squery = HKStatisticsQuery(quantityType: typeHeart!, quantitySamplePredicate: predicate, options: .discreteAverage, completionHandler: {(query: HKStatisticsQuery,result: HKStatistics?, error: Error?) -> Void in
        DispatchQueue.main.async(execute: {() -> Void in

            print("got: \(String(describing: result))")
        })
    })

    return squery
}
Run Code Online (Sandbox Code Playgroud)

ios swift healthkit watchkit watchos-4

12
推荐指数
0
解决办法
356
查看次数

WatchKit模拟器无法加载应用程序

最初,我认为这是我编写的代码的问题,但我刚刚下载了四个或五个WatchKit项目,甚至是Apple的一个.所有这些都无法加载.

我已经卸载了Xcode,重新安装它仍然没有.还有其他人遇到同样的问题吗?解决方法?解决方案?

截图

您可以在上面的屏幕截图中看到加载屏幕的样子.

xcode ios watchkit

11
推荐指数
2
解决办法
4144
查看次数

Apple Store提交失败,错误为ITMS-90046,但Associated Domains不属于权利范围

当我第一次构建我的app&Watchkit应用程序时,我启用了"Associated Domains"功能.我已经在watchkit扩展和配套应用程序的"功能"面板中禁用了它,并确认密钥已从每个info.plist中删除.

我已经转到Apples的"证书,标识符和配置文件"页面,为每个Watchkit应用程序,扩展程序和应用程序选择了应用程序ID,未选中"关联域",重新生成每个的配置文件,下载并安装它们.

我已完成Ctrl-Shift-Command-K完全清理,重启和重建.在对appstore进行总结时,我收到以下错误消息.

我在xcode中完成了项目搜索,无法找到com.apple.developer.associated-domains键.我搜索了构建目录,nada.我不相信这个密钥实际上存在于我的代码中,但iTunesConnect似乎认为它在那里并设置为'*'.

来自Xcode Organizer的错误消息itms-90046的屏幕截图

xcode provisioning ios watchkit xcode-6.2

11
推荐指数
3
解决办法
1万
查看次数