Cordova Android推送通知与动作按钮

时间:2016-04-25 08:01:41

标签: android cordova push-notification

我使用了Push Plugin,当我发送带按钮的按钮时1)接受2)忽略。

当通知发出时,我点击了“接受”按钮。但我希望参数与“接受”按钮回调。从那我将通过通知确认“接受”被称为。

代码参考

DECLARE @StartDate DateTime; SET @StartDate = '2015-12-01'
DECLARE @EndDate DateTime; SET @EndDate = '2016-12-01'

SELECT 
a.ID
,MIN(DATE) FirstDate
,MAX(DATE) LastDate
,DATEDIFF(day, MIN(DATE), MAX(DATE)) DayDiff
FROM #DataTable a
WHERE a.DATE BETWEEN @StartDate AND @EndDate
GROUP BY a.ID
代码“app.onPushAccept”函数中的

是“接受”按钮的回调..

请尽快帮助我。 谢谢..

3 个答案:

答案 0 :(得分:3)

Android推送通知(仅限)

第1步 - 首先转到以下目录

     plugins > phonegap-plugin-push > src > android > com > adobe > phonegap > push

步骤2 - 从上面的目录中打开GCMIntentService.java文件

步骤3 - 确定函数调用" createActions"和          添加实际参数" requestCode"像...

     createActions(extras,mBuilder,resources,packageName,notId,requestCode);

步骤4 - 确定功能定义" createActions"和          添加形式参数" int requestCode"像...

     private void createActions(Bundle extras, NotificationCompat.Builder mBuilder, Resources resources, String packageName, int notId,int requestCode)

步骤5 - 在功能定义" createActions"并在里面循环          从" i"更改第二个参数to" requestCode"像...

     pIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

     pIntent = PendingIntent.getBroadcast(this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

步骤6 - 完成上述所有步骤后删除android平台如果已添加平台则添加android平台。

如果我的解决方案中发现任何错误,请抱歉并改善。

答案 1 :(得分:2)

好的,首先想象一下你发送的是以下有效载荷:

{
    "registration_ids": ["my device id"],
    "data": {
        "title": "My title",
        "message": "My message.",
        "actions": [
            { "title": "Accept", "callback": "app.accept", "foreground": true},
            { "title": "Ignore", "callback": "app.ignore", "foreground": false}
        ]
    }
}

您已设置以下操作按钮处理程序:

app.accept = function(data} {
  // do something
}

app.ignore = function(data} {
  // do something
}

所以现在你有两个选项,你可以在push有效负载中放置一些东西,它唯一地标识收到的push,它将被放入data.additionalData或修改回调来调用另一个事件处理程序:

app.accept = function(data} {
  app.processPush('accept', data);
}

app.ignore = function(data} {
  app.processPush('ignore', data);
}

app.processPush = function(type, data) {
  if (type === 'accept') {
    // do accept stuff
  } else if (type === 'ignore') {
    // do ignore stuff
  }
}

答案 2 :(得分:0)

使用插件navigator.notification.confirm

cordova-plugin-dialogs方法

显示可自定义的确认对话框。

<强>语法

navigator.notification.confirm(message, confirmCallback, [title], [buttonLabels])
  • 消息:对话框消息。 (字符串)
  • confirmCallback :按下按钮索引(1,2或3)或在没有按下按钮(0)的情况下关闭对话框时调用回调。 (功能)
  • 标题:对话标题。 (字符串)(可选,默认为确认)
  • buttonLabels :指定按钮标签的字符串数组。 (数组)(可选,默认为[确定,取消])

您可以将 buttonLabels 更改为[&#34;接受&#34;,&#34;忽略&#34;] 满足您的需求。

示例

function onConfirm(buttonIndex) {
    alert('You selected button ' + buttonIndex);
}

navigator.notification.confirm(
    'You are the winner!', // message
     onConfirm,            // callback to invoke with index of button pressed
    'Game Over',           // title
    ['Accept','Ignore']     // buttonLabels
);