OneSignal SendTag在Xamarin中不起作用

问题描述

我想向特定用户发送通知。每个用户都有一个唯一的标识符。我该怎么办?

我尝试使用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 (将#修改为@)