首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Android的Azure通知中心注册

来自Android的Azure通知中心注册
EN

Stack Overflow用户
提问于 2016-10-21 05:51:05
回答 3查看 2.1K关注 0票数 0

当个人用户通过我的Android应用程序发送的电子邮件被阅读时,我正在尝试发送一个带有文本的推送通知,其中显示“电子邮件已读”。

我通过Azure API发送电子邮件,并且设置了一个SendGrid函数webhook端点,当读取电子邮件时将调用该端点。

我可以将Notification Hub注册Id和GCM令牌附加到通过webhook传回给我的电子邮件。

有了GCM令牌,我知道我想要向哪个设备/个人发送通知,我现在的挑战是如何调用Azure notification Hub来针对个人用户?

目前Azure函数只支持使用模板的Notification Hub绑定,这给我带来了另一个挑战,我如何使用安装从Android设备注册Azure通知中心?

EN

回答 3

Stack Overflow用户

发布于 2016-10-21 07:06:04

我自己还没有试过,但我认为你需要的是:

有关安装模型的更多信息,请参阅Registration management post。

票数 1
EN

Stack Overflow用户

发布于 2016-10-21 07:56:54

@Nikita G.总体而言是正确的。

我想补充一下实现级别的知识。

由于用户可以使用多个设备,因此每个人都可以由通知中心中的tag进行管理。Azure通知集线器标签系统适用于发送这种情况的推送。因此,您可以附加一个像user:34939这样的标记来标识用户(而不是标识设备)。

因此,您应该认为您的需求是标识device或标识user。无论在什么情况下,GCM令牌都不必附加到电子邮件链接上。只有标签值(userid)足以标识用户,或者仅集线器注册id足以标识设备。集线器注册id有助于管理已注册的设备,而与APNS或GCM令牌无关。

关于模板,是的。注册过程中模板是必需的。

仅供参考,tag有120个字符长度限制。https://stackoverflow.com/a/21199385/361100

票数 1
EN

Stack Overflow用户

发布于 2016-10-25 01:47:18

NotificationHub中的tagExpression是动态的。更多详情请查看Configuring notification tag for Azure Function。此外,Azure函数现在支持向GCM注册发送通知。您需要将绑定上的通知平台设置为GCM。

下面是一个示例,用于将WNS推送通知发送到作为queueTrigger传入的动态标签:

function.json

代码语言:javascript
复制
{
  "bindings": [
   {
     "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "test-queue",
      "connection": "AzureWebJobsDashboard"
    },
    {
       "type": "notificationHub",
       "name": "notification",
       "hubName": "youthubname",
       "connection": "NOTIFICATIONHUB_AppSettingName",
       "direction": "out",
       "tagExpression": "{userIdTag}",
       "platform": "wns"
     }
   ],
   "disabled": false
}

C# QueueTrigger:

代码语言:javascript
复制
using System;

public static void Run(PushToTag myQueueItem, TraceWriter log, out string    notification)
{
    log.Info($"C# Queue trigger function processed: {myQueueItem.UserIdTag}");
    notification = "<toast><visual><binding template=\"ToastText01\"><text  id=\"1\">Test message</text></binding></visual></toast>";
}

public class PushToTag
{
     public string UserIdTag { get; set; }
     public string UserName { get; set; }
}

队列数据示例

代码语言:javascript
复制
{"UserIdTag":"tag1" , "UserName":"joe"}

注意: tag1是由客户端注册的标记

您可以通过在通知平台中选择GCM来发送GCM通知。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40165148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档