首页 > 分享 > Watch OS 2.0 健身宠物app开发心得[1]-Healthkit的sdk接入

Watch OS 2.0 健身宠物app开发心得[1]-Healthkit的sdk接入

Watch OS2 - Healthkit的sdk接入

博主于今年7月底开始接触watch os2.0系统,听闻在os2.0上已经支持了原生app的开发,便兴致冲冲的开始了一段漫长的爬坑之旅!

博主主要开发的项目是在watch上研发一款健身宠物养成类游戏,如下图:

主要的功能就是利用watch os2.0 上的healkit sdk,依据watch收集的个人健康数据,以及完成这款原生app(即健身宠物,后文如此称呼)所指定的锻炼任务后,可以获得锻炼宠物的活力,以及捕捉相应各种种类的宠物等。而你所圈养的宠物的进化,也会依据主人的锻炼成果而有所不同,分为肌肉型,智慧型,以及肥胖型。

因此由上述功能可知,开发这款健身宠物,其核心模块就是apple watch上的healthkit sdk。

博主开发的时候,使用的开发环境是Xcode 7.0 beta 5 ,watch os 2.0 以及 ios 9.0。

好了,言归正传,下面就来讲述下博主在搭建项目阶段遇到的第一个坑,既是Healkit的sdk接入,所会遇见的最主要的问题。

首先,要导入apple提供的healthkit的sdk,你需要在你的项目工程文件中的target下,找到ios targets以及watchkit extensition的Capabilities目录,打开这两者中的healthkit开关。具体位置如下图所示:

在打开了项目设置里的ios 以及 watchkit extensition的healkit 开关后,我们将要进行下一步操作——请求healthkit 数据读取的授权。网上有很多类似的使用案例,在此我也将我的使用方法贴出来,这里不是重点,随后在appDelegate.swift中的设置才是重点。

import WatchKit

import Foundation

import HealthKit

import ClockKit

class ExtensionDelegate: NSObject, WKExtensionDelegate{

let healthManager = HealthManager()

let userDefault = NSUserDefaults.standardUserDefaults()

let gameData = GameData.shareInstance()

let csvReader = CSVReaderSingleton.shareInstance()

func applicationDidFinishLaunching() {

initData()

gameData.configData = GameData.getConfigDataFromCSV(9000)

if !userDefault.boolForKey("firstLogin") {

firstInit()

gameData.setUserData()

}

gameData.getUserData()

}

func applicationDidBecomeActive() {

gameData.getUserData()

gameData.startBenefitTimer()

gameData.checkPetReward()

gameData.checkFatAdding()

gameData.checkHealthReward()

gameData.startWorkSession()

}

func applicationWillResignActive() {

gameData.setUserData()

gameData.closeBenefitTimer()

gameData.endWorkSession()

}

func didReceiveLocalNotification(notification: UILocalNotification) {

}

func firstInit() {

userDefault.setBool(true, forKey: "firstLogin")

gameData.currentPetData.id = gameData.configData.defaultPet

gameData.currentPlayerData.storeItemUsing = gameData.configData.defaultTrain

gameData.currentPlayerData.storeItemPurchased.append(gameData.configData.defaultTrain)

}

func initData() {

csvReader.initDictionaryData()

print("start request authorize")

healthManager.authorizeHealthKit { (authorized, error) -> Void in

if authorized {

print("HealthKit authorization received.")

}

else{

print("HealthKit authorization denied!")

if error != nil {

print("(error)")

}

}

}

}

func refreshComplications() {

let clockServer = CLKComplicationServer.sharedInstance()

for complication in clockServer.activeComplications

{

if complication.family == .ModularLarge

{

clockServer.extendTimelineForComplication(complication)

}

}

}

}

在watchkit Extensition上获取了授权后(即watch取得授权),还需要向手机进行一次healthkit的授权验证(无法避免)。这就是很多人容易忽略掉的一步,缺少了这一步,apple watch是无法获得healthkit中心的数据的。因此,我们需要在ios的工程中的AppDelegate.swift中加入如下一句话:(如图)

在此处对手机进行授权访问验证后,才能使apple watch 的healthkit 数据授权成功。

好了,第一篇主要是将healthkit的接入,下一篇博客,博主将具体介绍如何实现 心跳数据的读取,以及脉搏跳动动画,并分享一下apple watch上按小时分钟获取healthkit step数据的所遇到的大坑,以及如何填补这个坑。

相关知识

智能手表手环SDK协议API二次开发APP小程序校园医院养老院方案
【宠信-宠物健康管理专家】App SDK
开发宠物商城APP小程序
宠物社区app开发都有哪些功能?
宠物社区App
开发一款宠物饲养APP选择哪个公司好
宠物托运app开发需要设置哪些功能?
宠物直播APP的开发前景及功能版块
家宠物联 隐私政策
宠物电商app开发方案及宠物电商app功能

网址: Watch OS 2.0 健身宠物app开发心得[1]-Healthkit的sdk接入 https://m.mcbbbk.com/newsview73494.html

所属分类:萌宠日常
上一篇: 关于电子宠物APP的问卷调查
下一篇: 宠物烘干箱哪个好?良心推荐十大热