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