-1

我正在使用 curl 命令发送推送通知,它工作正常。这是我的 curl 命令

curl --header "Authorization: key=GjO1y_hPm-xUdgnM25Ny4" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"dFWzS2cc7I0:APmREGNkRg8YKdlVp89vUVNTuEI0ygJ8TZ-7lhzs9wGek6nEiojzA-N2BC1dxbPpT1_VsTtM6kS9LLJ90bIK_xvt5Y2TTx6qB_GUsjYxGF3Ni4UBr7_H6NeVMIYmYPj7\"]}"

当我通过传递给用户的命令行通知执行此命令时。我想在按钮单击时发送通知。我该怎么做。

4

2 回答 2

0

在启用按钮之前,我们需要检查许多 API。以下是Open Web 上的推送通知中给出的步骤的简要概述,其中还可以找到示例代码:

  • 我们检查showNotification在 ServiceWorkerRegistration 原型中是否可用。没有它,我们将无法在收到推送消息时显示来自服务工作者的通知。
  • 我们检查当前Notification.permission是什么,以确保它不会被“拒绝”。被拒绝的权限意味着在用户手动更改浏览器中的权限之前,您无法显示通知。
  • 要检查是否支持推送消息,我们检查窗口对象中的PushManager是否可用。
  • 最后,我们使用pushManager.getSubscription()来检查我们是否已经有订阅。如果我们这样做,我们会将订阅详细信息发送到我们的服务器以确保我们拥有正确的信息并设置我们的 UI 以指示推送消息是否已启用。我们将在本文后面讨论订阅对象中存在哪些细节。

您的第一个推送通知 Web 应用程序还可以帮助您了解如何将推送通知正确实施到 Web 应用程序。

于 2016-04-15T08:06:28.637 回答
0

我使用 asp.net c# 在按钮单击时发送通知。这是我的代码

protected void Button1_Click(object sender, EventArgs e)
    {
string RegArr = string.Empty;
RegArr = string.Join("\",\"", RegistrationID);      

string message = "some test message";
string tickerText = "example test GCM";
string contentTitle = "content title GCM";
 postData =
"{ \"registration_ids\": [ \"" + RegArr + "\" ], " +
"\"data\": {\"tickerText\":\"" + tickerText + "\", " +
"\"contentTitle\":\"" + contentTitle + "\", " +
"\"message\": \"" + message + "\"}}";

string response = SendGCMNotification("Api key", postData);
}

SendGCMNotification 功能:-

private string SendGCMNotification(string apiKey, string postData, string postDataContentType = "application/json")
    {

        byte[] byteArray = Encoding.UTF8.GetBytes(postData);

        //  CREATE REQUEST
        HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send");
        Request.Method = "POST";
        Request.KeepAlive = false;
        Request.ContentType = postDataContentType;
        Request.Headers.Add(string.Format("Authorization: key={0}", apiKey));
        Request.ContentLength = byteArray.Length;

        Stream dataStream = Request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        //
        //  SEND MESSAGE
        try
        {
            WebResponse Response = Request.GetResponse();
            HttpStatusCode ResponseCode = ((HttpWebResponse)Response).StatusCode;
            if (ResponseCode.Equals(HttpStatusCode.Unauthorized) || ResponseCode.Equals(HttpStatusCode.Forbidden))
            {
                var text = "Unauthorized - need new token";
            }
            else if (!ResponseCode.Equals(HttpStatusCode.OK))
            {
                var text = "Response from web service isn't OK";
            }
            StreamReader Reader = new StreamReader(Response.GetResponseStream());
            string responseLine = Reader.ReadToEnd();
            Reader.Close();

            return responseLine;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return "error";
    }
于 2016-05-02T06:17:54.103 回答