问题描述
我想向特定用户发送通知。每个用户都有一个唯一的标识符。我该怎么办?
我尝试使用SendTag()
,但是没有用。这是代码-Onesignal.Current.SendTag("Key",user.Key);
它实际上从未注册。执行代码后,我进入了Onesignal仪表板,发现没有注册任何标签。
但是,如果我手动添加标签,则可以将通知发送给该特定用户。似乎是什么问题?
我的App.xaml.cs
中有以下代码
Onesignal.Current.Startinit("######")
.Settings(new Dictionary<string,bool>()
{
{
IOSSettings.kOSSettingsKeyAutoprompt,false
},{
IOSSettings.kOSSettingsKeyInAppLaunchURL,false
}
})
.InFocusdisplaying(OSInFocusdisplayOption.Notification)
.EndInit();
Onesignal.Current.SendTag("Key",user.Key);
Onesignal.Current.RegisterForPushNotifications();
public static void Send(string title,string message,string key)
{
var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest;
request.KeepAlive = true;
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
request.Headers.Add("authorization","Basic ####");
byte[] byteArray = Encoding.UTF8.GetBytes("{\"app_id\": \"#####\","
+ "\"contents\": {\"en\": \"" + message + "\"},"
+ "\"headings\": {\"en\": \"" + title + "\"},"
+ "\"filters\": [{\"field\": \"tag\",\"key\": \"Key\"," +
" \"relation\": \"=\",\"value\": \"" + key + "\"}]}");
string responseContent = null;
try
{
using (var writer = request.GetRequestStream())
{
writer.Write(byteArray,byteArray.Length);
}
using (var response = request.GetResponse() as HttpWebResponse)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
responseContent = reader.ReadToEnd();
}
}
}
catch (WebException e)
{
DependencyService.Get<Toast>().Show("Couldn't send Notifications to the end users.");
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)