Apple Watch開(kāi)發(fā)中遇到的那些問(wèn)題(WatchOS 2)

WatchOS 2 開(kāi)發(fā)全過(guò)程

實(shí)現(xiàn)效果@2x.png

磕磕絆絆纹蝴,終于把Watch更新了庄萎,放張最有代表性的界面吧。還是會(huì)按照實(shí)際操作的順序來(lái)寫這篇文字塘安。

1.創(chuàng)建WatchKit模塊
build.png

試著運(yùn)行一下惨恭,在這里程序可能會(huì)報(bào)錯(cuò),原因是系統(tǒng)創(chuàng)建Watch Target的時(shí)候耙旦,Version版本號(hào)默認(rèn)給的都是1.0脱羡,所以可能會(huì)與原程序發(fā)生一些沖突,改過(guò)來(lái)就OK了免都。

2.實(shí)現(xiàn)App端與Watch端的通信

在WatchOS 2中下面這對(duì)方法已經(jīng)被干掉了

        BOOL sendSuccess = [WKInterfaceController openParentApplication:[request dictionaryValue] reply:^(NSDictionary *replyInfo, NSError *error) {
            if (!block) {
                return;
            }}
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply
{}

不過(guò)不用擔(dān)心锉罐,在新版本中蘋果添加了WatchConnectivity.framework,其中主要用到的是WCSession這個(gè)類,這里面細(xì)化了多個(gè)方法绕娘,可以根據(jù)實(shí)際需要選擇相對(duì)應(yīng)的方法脓规。具體的方法就不列出來(lái)了,在實(shí)際編碼中用到了下面這個(gè)兩個(gè)方法险领,第一個(gè)用來(lái)傳簡(jiǎn)單的數(shù)據(jù)信息和圖片侨舆,第二個(gè)用來(lái)傳音頻文件。

[[ConnectManager sharedManager].session sendMessage:[request dictionaryValue]
                                               replyHandler:^(NSDictionary<NSString *,id> * _Nonnull replyMessage) {
                                                   
                                               } errorHandler:^(NSError * _Nonnull error) {
                                                   
                                               }];
[[ConnectManager sharedManager].session transferFile:url metadata:dic];
        
    });

相對(duì)應(yīng)的代理方法:

- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message replyHandler:(void (^)(NSDictionary<NSString *,id> * _Nonnull))replyHandler
- (void)session:(WCSession *)session didReceiveFile:(WCSessionFile *)file

在使用上面這兩個(gè)方法時(shí)绢陌,需要注意幾點(diǎn):
1.sendMessage只支持標(biāo)準(zhǔn)數(shù)據(jù)類型
2.一開(kāi)始我打算將音頻也用sendMessage方法傳輸挨下,然后程序會(huì)拋出錯(cuò)誤,意思是傳輸?shù)膬?nèi)容過(guò)大脐湾,無(wú)法傳輸臭笆,使用sendMessageData同樣會(huì)拋出這個(gè)錯(cuò)誤。
3.當(dāng)我的某個(gè)NSString類型的參數(shù)為空時(shí)秤掌,傳輸也會(huì)失敗愁铺,這個(gè)問(wèn)題坑了我半天
4.使用Watch錄制音頻涉及到App Groups方面的內(nèi)容,考慮到都寫到一篇文章里篇幅較大闻鉴,所以我會(huì)單開(kāi)一篇茵乱,包括音頻格式的轉(zhuǎn)換等。文章鏈接如下:
Watch音頻錄制孟岛,.wav轉(zhuǎn)換.mp3瓶竭,獲取音頻文件時(shí)長(zhǎng)

關(guān)于WCSession的使用,可以看看這篇文章
stackoverflow-WCSession

3.Glance頁(yè)面實(shí)現(xiàn)與交互

蘋果將整塊Glance頁(yè)面分為Upper和Lower兩部分蚀苛,如下圖所示在验。最好讓設(shè)計(jì)了解到這一點(diǎn)玷氏,因?yàn)樵谶@個(gè)界面上的布局不是隨心所欲的堵未,而且蘋果也不建議在這個(gè)頁(yè)面放Table之類的控件,另外就是Glance沒(méi)有交互響應(yīng)盏触,點(diǎn)擊任何位置都會(huì)跳轉(zhuǎn)到應(yīng)用內(nèi)部渗蟹。

Upper.png
Lower.png

如果想通知App是從Glance頁(yè)面進(jìn)入块饺,或者想要傳入一些其他信息,可以調(diào)用下面的方法雌芽。

[self updateUserActivity:@"com.seven.watch.glance" userInfo:info webpageURL:nil];

然后在相應(yīng)的WKInterfaceController中接收

- (void)handleUserActivity:(NSDictionary *)userInfo
{}

基本的數(shù)據(jù)通信差不多就都實(shí)現(xiàn)了授艰,可能寫的不是很細(xì)致,如果有什么問(wèn)題可以留言世落,大家一起探討淮腾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屉佳,隨后出現(xiàn)的幾起案子谷朝,更是在濱河造成了極大的恐慌,老刑警劉巖武花,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圆凰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡体箕,警方通過(guò)查閱死者的電腦和手機(jī)专钉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)累铅,“玉大人跃须,你說(shuō)我怎么就攤上這事⊥奘蓿” “怎么了回怜?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)换薄。 經(jīng)常有香客問(wèn)我玉雾,道長(zhǎng),這世上最難降的妖魔是什么轻要? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任复旬,我火速辦了婚禮,結(jié)果婚禮上冲泥,老公的妹妹穿的比我還像新娘驹碍。我一直安慰自己,他們只是感情好凡恍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布志秃。 她就那樣靜靜地躺著,像睡著了一般嚼酝。 火紅的嫁衣襯著肌膚如雪浮还。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天闽巩,我揣著相機(jī)與錄音钧舌,去河邊找鬼担汤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛洼冻,可吹牛的內(nèi)容都是我干的崭歧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼撞牢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼率碾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起屋彪,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤播掷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后撼班,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體歧匈,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年砰嘁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了件炉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矮湘,死狀恐怖斟冕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缅阳,我是刑警寧澤磕蛇,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站十办,受9級(jí)特大地震影響秀撇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜向族,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一呵燕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧件相,春花似錦再扭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至紊撕,卻和暖如春罢荡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工柠傍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辩稽。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓惧笛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親逞泄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子患整,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件喷众、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評(píng)論 4 62
  • 其實(shí)各谚, 我覺(jué)得我這個(gè)人挺敏感的, 敏感到什么程度呢到千? 我發(fā)你消息你沒(méi)有回我昌渤, 我會(huì)把對(duì)話框刪掉, 假裝我沒(méi)找過(guò)你憔四。...
    披薩狗閱讀 356評(píng)論 0 0
  • 魯迅和他的老鼠和貓咪的故事膀息。 在《阿長(zhǎng)與山海經(jīng)》里,迅哥兒這樣交代「阿長(zhǎng)」的名稱來(lái)由: 我平時(shí)叫她「阿媽」了赵,連「長(zhǎng)...
    宴息閱讀 3,233評(píng)論 0 2
  • 郭相麟 一個(gè)孩子充滿著對(duì)武術(shù)的好奇潜支,在名師的指點(diǎn)下,走上了人生坎坷拼搏之路柿汛! 在與對(duì)手武術(shù)搏擊的挑戰(zhàn)中冗酿, 一次...
    郭相麟閱讀 112評(píng)論 0 0
  • 這周確定了我本月的主題——讓時(shí)間看得見(jiàn),這由早起的“輸出”想到的络断。早起不單單是打個(gè)卡這樣簡(jiǎn)單裁替,有效的輸入輸出才是早...
    將心比心_赫閱讀 230評(píng)論 0 0