天天看點

AppleWatch開發入門七——watchOS中通知的應用(一)AppleWatch開發入門七——watchOS中通知的應用

AppleWatch開發入門七——watchOS中通知的應用

一、引言

       在iOS系統中,支援的通知有兩種類型:本地通知和遠端通知。本地通知多用于計時類通知,遠端的又稱推送,多用于一些提示動态的提示資訊。這裡有相關通知的一些知識總結:

本地推送:

http://my.oschina.net/u/2340880/blog/405491

遠端推送:

http://my.oschina.net/u/2340880/blog/413584

       在watch中,通知是和iphone同步的,在iphone上的App收到通知的同時,會預設也推送到watch上,基于watch的穿戴性,對使用者來說,它上面的通知資訊将比iphone更加及時。

二、WatchOS通知概覽

       首先,watch上的通知分為兩部分:short-look和long-lock。簡而言之,short-look,可以了解為一個簡單的通知預覽,它會将通知發起的APP和主要标題等資訊展示給你,讓你一目了然,當使用者擡起手腕,檢視這個通知一定時間,這個短通知就會轉換為long-look通知。short-look的通知界面我們不能夠自定義,系統為我們設計好了模樣。

長通知的界面我們是可以進行一定程度上的自定義的,并且可以添加按鈕等邏輯操作。

       long-look也分為兩種界面,靜态界面和動态界面。這個也好了解,靜态界面是我們在寫程式時就定義好的界面,在通知發送到watch上時,界面會自動比對通知内容進行顯示。動态的界面則是當收到通知時,會先執行我們相應的配置代碼,之後在進行通知界面的展示。一個long-look界面大緻如下:

AppleWatch開發入門七——watchOS中通知的應用(一)AppleWatch開發入門七——watchOS中通知的應用

在long-lock中,界面定義為三個部分,頭部标題欄,自定義視圖欄和按鈕互動區。頭部的标題欄我們不能自定義,它是一個半透明的上面有App圖示和名字的橫欄。其下面是我們可以自定義的區域,我們可以在storyBoard中拉入文本和圖檔。最下面是一些互動按鈕,其名稱等配置資訊在推送的檔案中定義。

三、如何在模拟器上模拟遠端推送

       在watchOS模拟器上,Xcode為我們準備好了一種可以模拟測試推送的方式。如果我們建立項目時,選擇了NotifacationScene,則Xcode會預設為我們建立一個apns檔案:

AppleWatch開發入門七——watchOS中通知的應用(一)AppleWatch開發入門七——watchOS中通知的應用

這個檔案就是模拟推送的相關配置檔案,如果沒有,我們也可以手動來建立:

AppleWatch開發入門七——watchOS中通知的應用(一)AppleWatch開發入門七——watchOS中通知的應用

檔案中的内容格式如下:

{

   "aps": {

       "alert": {

           "body": "通知",

           "title": "通知來了"

       },

       "category": "myCategory"

   },

   "WatchKit Simulator Actions": [

       {

           "title": "First Button",

           "identifier": "firstButtonAction"

       }

   ],

   "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."

}

這是一些json格式的資料,其中alert是對推送内容的設定,body會顯示在long-look的标題欄,title會顯示在short-look的标題欄,Actions數組中是對按鈕就行配置,每一個按鈕可以設定一個标題和id,标題用于在推送界面顯示,id用于處理點選按鈕後觸發的邏輯。

建立好這個,我們可以來試着測試一下推送的界面,選擇推送工程,運作即可:

AppleWatch開發入門七——watchOS中通知的應用(一)AppleWatch開發入門七——watchOS中通知的應用