Настройте полезную нагрузку Baidu Push JSON
Я использую API отдыха для отправки push-уведомлений Baidu. У меня нет доступа к классам построителя уведомлений Android, поэтому я не могу, например, использовать notificationBuilder.setPriority(2);
, На самом деле главное, что мне нужно знать, это как установить приоритет уведомления Baidu Push на MAX, используя только JSON.
Согласно этому веб-сайту, здесь приведены все ключи и значения для полезной нагрузки Baidu JSON:
{
//android必选,ios可选
"title": "hello" ,
"description": "hello world"
//android特有字段,可选
"notification_builder_id": 0,
"notification_basic_style": 7,
"open_type":0,
"net_support" : 1,
"user_confirm": 0,
"url": "http://developer.baidu.com",
"pkg_content":"",
"pkg_name" : "com.baidu.bccsclient",
"pkg_version":"0.1",
//android自定义字段
"custom_content": {
"key1":"value1",
"key2":"value2"
},
//ios特有字段,可选
"aps": {
"alert":"Message From Baidu Push",
"sound":"",
"badge":0
},
//ios的自定义字段
"key1":"value1",
"key2":"value2"
}
Я предполагаю, что мне нужно установить значения notification_builder_id
, но так как в качестве значения оно просто принимает целое число, я не уверен, как создать уведомление, соответствующее идентификатору.
1 ответ
Мне удалось выяснить, как установить высокий приоритет для того, чтобы уведомление отображалось как баннер, а не просто значок в строке состояния.
В клиентском приложении вам нужно установить построитель уведомлений и дать ему идентификатор, например, так (обратите внимание, что я использую Xamarin Forms
, но логика та же, если вы используете родной Android. Кроме того, этот код должен быть размещен непосредственно после PushManager.StartWork()
вызов метода, скорее всего, в вашей деятельности onCreate()
метод):
BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder();
builder.SetNotificationFlags(
(int)NotificationFlags.AutoCancel |
(int)NotificationFlags.HighPriority |
(int)NotificationFlags.ShowLights);
builder.SetNotificationDefaults(
(int)NotificationDefaults.Lights |
(int)NotificationDefaults.Vibrate);
builder.SetStatusbarIcon(Resource.Drawable.icon);
// the second parameter is the id. This is the id that you need to set
// in the JSON payload in order for the incoming notification to appear
// in this way.
PushManager.SetNotificationBuilder(Xamarin.Forms.Forms.Context, 1, builder);
А затем для полезной нагрузки, это просто так:
{"title":"My Title","description":"my description","notification_builder_id":1}
Опять же, обратите внимание, что значение messages_builder_id должно соответствовать второму параметру в SetNotificationBuilder()
метод.