2016-11-22 7 views
1

Я зарегистрировал устройство с 2-х шаблонамиAzure Hub уведомление, отправив сообщение на устройство с помощью шаблона

{ 
"handle":"handleIdGoeshere", 
"installationId":"installationIdgoeshere", 
"platform":"gcm", 
"templates":{ 
    "ctemplate": 
    { 
     "Body" : "{\"data\": {\"message\": \"$(message)\",\"conversation\": \"$(conversation)\"}}", 
    "Tags":["chatTemplate"] 
    }, 
    "rtemplate": 
    { 
    "Body" : "{\"data\": {\"message\": \"$(message)\"}}", 
    "Tags":["regularTemplate"] 
    } 
    },"tags":["device:tablet","language:en"]} 

Как вы можете видеть выше, один шаблон имеет переменный сообщения и другое сообщения и разговора

Каждый шаблон имеет присвоенное имя, однако, при отправке нажим

var properties = new Dictionary<string, string>(); 
       properties.Add("message", message); 
       properties.Add("conversation", "1234567890"); 

       outcome = await hub.SendTemplateNotificationAsync(properties); 

Я не могу указать, какой шаблон я хочу использовать, я думал, что azure автоматически обнаружил шаблон на основе переменных, используемых для push, но я думаю, это не так, если я отправлю push с только набором переменных сообщений Я получаю следующее:

{ 
conversation=, 
message=another test 
} 

, который приводит к ошибке синтаксического анализа, поскольку переменная диалога пуста. Итак, какова цель шаблонов, если лазурь отправит их все? и как я могу это исправить.

Благодаря

ответ

1

Notification концентратор не обнаруживает шаблон, основанный на кнопочных переменных. Вы должны явно выбрать, какой шаблон отправить с помощью тега. Например, если вы хотите отправить уведомление с помощью ctemplate (и вы определили тег для этого шаблона как chattemplate), тогда вам нужно выдать команду send что-то вроде этого.

var properties = new Dictionary<string, string>(); 
properties.Add("message", message); 
properties.Add("conversation", "1234567890"); 

outcome = await hub.SendTemplateNotificationAsync(properties, "chatTemplate"); 

Спасибо,

Sateesh