2016-03-03 215 views
2

科爾多瓦當然有發送推送通知的選項,但是否有任何插件包括直接向通知添加操作的功能?科爾多瓦推送通知操作

我試着搜索'交互式通知'和'通知動作'插件,但沒有得到任何結果。我也試着看看API reference for phonegap-plugin-push,但沒有找到合適的選項或方法。

什麼,我正在尋找一個例子是,當的iMessage允許用戶對文章作出迴應,甚至無需打開應用程序時會發生什麼:

iOS push notification action

任何科爾多瓦插件可以添加動作推送通知?

回答

3

您的通知可以包含操作按鈕。對於iOS 8+必須在安裝了可能採取的行動,當你初始化插件:

var push = PushNotification.init({ 
    "ios": { 
     "sound": true, 
     "vibration": true, 
     "badge": true, 
     "categories": { 
      "invite": { 
       "yes": { 
        "callback": "app.accept", "title": "Accept", "foreground": true, "destructive": false 
       }, 
       "no": { 
        "callback": "app.reject", "title": "Reject", "foreground": true, "destructive": false 
       }, 
       "maybe": { 
        "callback": "app.maybe", "title": "Maybe", "foreground": true, "destructive": false 
       } 
      }, 
      "delete": { 
       "yes": { 
        "callback": "app.doDelete", "title": "Delete", "foreground": true, "destructive": true 
       }, 
       "no": { 
        "callback": "app.cancel", "title": "Cancel", "foreground": true, "destructive": false 
       } 
      } 
     } 
    } 
}); 

你會發現,我們增加了一個新的參數,我們的初始化代碼iOS的對象稱爲類。在這種情況下,每個類別都是一個命名對象,邀請和刪除。如果您希望顯示操作按鈕,這些名稱將需要與您通過有效負載發送給APNS的名稱匹配。每個類別最多可以有三個按鈕,其中必須標有「是」,「否」或「可能」。反過來,這些按鈕中的每一個都有四個屬性,回調你想要調用的javascript函數,爲按鈕標題標題,前景是否讓你的應用程序到達前景和破壞性,它實際上沒有任何破壞性,它只是顏色該按鈕紅色警告用戶該操作可能具有破壞性。

就像背景通知一樣,當您成功處理按鈕回調時,調用push.finish()是絕對關鍵的。例如:

app.accept = function(data) { 
    // do something with the notification data 

    push.finish(function() { 
     console.log('accept callback finished'); 
    }, function() { 
     console.log('accept callback failed'); 
    }, data.additionalData.notId);  
}; 

您可能會注意到完成方法現在的成功,失敗和id參數。 id參數讓操作系統知道停止哪個後臺進程。你會在下一步中設置它。

然後,您需要在您的aps有效負載中設置類別值以匹配類別對象中的一個對象。你也應該在有效載荷對象的根中設置一個notId屬性。這是您傳遞給完成方法的參數,以便告訴操作系統推送事件的處理已完成。

{ 
    "aps": { 
     "alert": "This is a notification that will be displayed ASAP.", 
     "category": "invite" 
    }, 
    "notId": "1" 
} 

如果你的用戶點擊通知的主體,你的應用程序將被打開。但是,如果他們點擊任一操作按鈕,應用程序將打開(或啓動),並執行指定的JavaScript回調。

Note: Action buttons are only supported on iOS when you send directly to APNS. If you are using GCM to send to iOS devices you will lose this functionality. 

我只是貼在https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/PAYLOAD.md#action-buttons-1

+1

大的文檔這正是我一直在尋找。感謝您的深入解釋。 –

+0

我剛剛複製了文檔。我將在插件repo上打開一個問題,指出這應該在API.md中提及,而不僅僅是在PAYLOAD.md上 – jcesarmobile

相關問題