2016-11-22 51 views
1

发短信到设备我注册了一个装置与2个模板Azure的通知中心,使用模板

{ 
"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会根据用于推送的变量自动检测模板,但我想不是这种情况,如果我仅使用消息变量集发送推送我得到以下内容

{ 
conversation=, 
message=another test 
} 

由于会话变量为空,导致分析错误。那么,如果azure会发送所有的模板,那么模板的目的是什么?我该如何解决这个问题。

谢谢

回答

1

通知中心未检测到基于推送变量的模板。你必须明确地选择使用标签发送哪个模板。例如,如果您想使用ctemplate发送通知(并且您已将此模板的标记定义为chattemplate),那么您必须发出类似于此的send命令。

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

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

感谢,

Sateesh

相关问题