WatchKit 應(yīng)用擴(kuò)展可以使用絕大多數(shù) iOS 技術(shù)。由于應(yīng)用擴(kuò)展和應(yīng)用還是有一些不同,因此某些技術(shù)的使用可能會(huì)受到限制,或者不受到推薦。下面是決定是否使用特定技術(shù)的準(zhǔn)則:
避免使用需要用戶權(quán)限的技術(shù),比如 Core Location。在 WatchKit 應(yīng)用擴(kuò)展中使用該技術(shù)的話,可能會(huì)在您第一次請(qǐng)求使用時(shí)導(dǎo)致用戶的 iPhone 上顯示出一個(gè)意想不到的提示。更糟糕的是,這個(gè)狀況可能會(huì)在任何時(shí)間出現(xiàn),即使用戶的 iPhone 在他們的口袋里并且屏幕是鎖定的。
不要使用后臺(tái)執(zhí)行模式的技術(shù)。 WatchKit 應(yīng)用擴(kuò)展只考慮在前臺(tái)運(yùn)行的情況,并且其只在用戶和對(duì)應(yīng)的 Watch 應(yīng)用交互時(shí)運(yùn)行。因此,支持后臺(tái)運(yùn)行的某些技術(shù)在 WatchKit 應(yīng)用擴(kuò)展中并不被支持。
要使用 iOS 技術(shù),其中一種解決方法是讓您的 iOS 應(yīng)用來(lái)使用這些技術(shù)。例如,在您的 iOS 應(yīng)用中使用位置服務(wù),而不是在 WatchKit 中使用這個(gè)技術(shù)。iOS 應(yīng)用可以收集所需的數(shù)據(jù)然后通過共享程序組來(lái)讓應(yīng)用擴(kuò)展稍后訪問。
Watch 支持創(chuàng)建的 Handoff 功能。你可以用控制器 WKInterfaceController
中的 updateUserActivity:userInfo:webpageURL: 方法來(lái)創(chuàng)建。
在 glance 的控制器中,你可以定制有用的信息,來(lái)與你的設(shè)備進(jìn)行交互。當(dāng)用戶點(diǎn)擊了 glance 上的應(yīng)用的時(shí)候,WatchKit 將會(huì)將數(shù)據(jù)傳輸?shù)侥愕脑O(shè)備上。之后,你可以用這個(gè)發(fā)送過來(lái)的數(shù)據(jù)更新您的設(shè)備上的相關(guān)內(nèi)容。
Watch 可以用遠(yuǎn)程控制事件來(lái)管你與之配對(duì)的 iPhone,例如播放音樂、視頻。設(shè)備也會(huì)將當(dāng)前正在播放的音樂(或者視頻)信息傳輸?shù)?Watch 上顯示。一個(gè)注冊(cè)過 MPRemoteCommandCenter 的iOS應(yīng)用程序會(huì)自動(dòng)的接受數(shù)據(jù)處理信息。你不需要在你的WatchKit擴(kuò)展包中做些額外的操作來(lái)同步數(shù)據(jù)。
重要提示
為了反饋類似于喜歡、不喜歡或者標(biāo)記一個(gè)內(nèi)容的信息,Watch 是使用 localizedShortTitle,而不是MPFeedbackCommand
中的localizedTitle
。
Now Playing 的 glance 會(huì)自動(dòng)的顯示當(dāng)前 iOS 應(yīng)用的 Now Playing 信息。iOS 應(yīng)用程序通過 MPNowPlayingInfoCenter 來(lái)提供這些數(shù)據(jù)。當(dāng)您的app在更新數(shù)據(jù)時(shí),您應(yīng)當(dāng)去更新 nowPlayingInfo 字典的內(nèi)容。Watch 會(huì)自動(dòng)的更新數(shù)據(jù)并顯示出來(lái)。另外,如果此時(shí)用戶點(diǎn)擊了 Now Playing 上的標(biāo)題,Watch 會(huì)直接進(jìn)入 iOS 應(yīng)用對(duì)應(yīng)的 Watch 應(yīng)用中。
更多的關(guān)于如何實(shí)現(xiàn)遠(yuǎn)程控制以及Now Playing的內(nèi)容,請(qǐng)查閱 Remote Control Events。