2016-11-22 80 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

相關問題