Ionic 2 推送通知操作按钮点击回调使用打字稿

Posted

技术标签:

【中文标题】Ionic 2 推送通知操作按钮点击回调使用打字稿【英文标题】:Ionic 2 push notification action button click callback using typescript 【发布时间】:2017-08-04 05:39:27 【问题描述】:

我正在我的 ionic 应用程序中探索 Ionic 2 推送插件。我添加了推送插件并向我的应用程序发送通知。现在我的要求是单击通知操作按钮以及如何在我的代码中链接回调。在这里,我提到了我的通知 JSON 示例,以使用操作按钮推送通知。

"data":
"title":"Data title",
"message":"Data message",
"information": "Information",
"actions": [
             "icon": "approve_icon", "title": "APPROVE", "callback": "", "foreground": true,
             "icon": "reject_icon", "title": "REJECT", "callback": "", "foreground": true
        ]

这里我将回调参数留空。如何将我的批准和拒绝方法链接到此回调参数。请帮帮我。

【问题讨论】:

【参考方案1】:

我正在查看文档,我假设 this 是您所指的插件。如果没有,链接相关插件的 github 页面会对您有所帮助。

阅读示例,似乎没有立即的帮助,但不要害怕,离子论坛上的某个人had the same issue。从那里的一个示例中,您似乎可以将函数放入 JSON 中,如下所示:


  "data": 
    "title": "You have unread chats!",
    "message": "Click here to read them.",
    "actions": [
         "title": "VIEW CHATS", "callback": "pushListener.callbacks.viewChats", "foreground": true,
         "title": "SNOOZE", "callback": "pushListener.callbacks.snooze", "foreground": true
    ]
  ,
  "registration_ids":["foobar"]

基本上,据我了解,如果您将 classname.functionname 放在回调参数中,那就是将被调用的函数。

希望这会有所帮助!

【讨论】:

我试过这样。但是我们的自定义事件批准这种方法是不可接受的。 push.on('approve', (e) => console.log(e); );【参考方案2】:

我已经实现了所需的解决方案。在您的启动器类中,通知操作按钮回调应该是这样的。 (即)您必须将回调放在 app.component.ts 中。它工作得很好。

(<any>Window).approve = function (data: any) 
  alert('Approve called); 
;

(<any>Window).reject = function (data: any) 
  alert('Reject called);   

//android 的负载

"data": 
    "title": "Push notification",
    "message": "Push notification with action button",
    "actions": [
         "icon": "approve_icon", "title": "Approve", "callback": "Window.approve", "foreground": true,
         "icon": "reject_icon", "title": "Reject", "callback": "Window.reject", "foreground": true
    ]

【讨论】:

以上是关于Ionic 2 推送通知操作按钮点击回调使用打字稿的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 2:点击推送通知

Ionic 2:处理点击推送通知

点击推送通知后打开页面 Ionic 2 iOS

打字稿错误使用googlemaps javascript API时在ionic2中找不到名称'google'

用于 cloudboost 的打字稿(并将其与 ionic2 一起使用)

尝试使用 Ionic2 和打字稿中的 http 请求与通用提供程序进行 oauth2