0

我想使用Azure移动服务发送推送通知。我得到它的工作,但目前它发送到所有使用应用程序密钥的设备。我意识到在gcm.push.send()函数中,如果我想将它发送给个人或组,则必须给它一个标记而不是null。Azure移动服务:发送推送通知到特定的Android设备

我想只发送给当前用户。调用插入的用户。我试图把用户gcm注册ID,但这不起作用。

我看到的人登记他们的标签像这样(在推>编辑脚本)的例子:

exports.register = function (registration, registrationContext, done) { 

var userId = registrationContext.user.userId; 

    registration.tags.push(userId); 

done(); 
}; 

不使用身份验证,所以我user变量未定义但是即时通讯。所有得到的是在我的项目表(item.id)和注册ID(item.regid)中的唯一标识符。 如何让我的标签正常工作?这是我的插入:

function insert(item, user, request) { 
console.log("Registration ID -> " + item.regid); 
var payload = { 
    "data": { 
      "message": "notification added" 
     } 
}; 

request.execute({ 
success: function() { 
    // If the insert succeeds, send a notification. 
    push.gcm.send(item.regid, payload, { 
     success: function(pushResponse) { 
      console.log("Sent push:", pushResponse, payload); 
      request.respond(); 
      },    
     error: function (pushResponse) { 
      console.log("Error Sending push:", pushResponse); 
      request.respond(500, { error: pushResponse }); 
      } 
     }); 
    }, 
error: function(err) { 
    console.log("request.execute error", err) 
    request.respond(); 
} 
}); 
} 

回答

3

通知集线器不必发送到特定的设备,现在的能力。

模拟此的机制是通过注册过程和标签。直接使用通知中心API。注册设备时,请注册以使用适合设备或用户的标签进行收听。例如,注册以收听标签USER-userid和DEVICE-deviceid。

然后,当你想发送到一个特定的设备,发送到DEVICE-deviceid,如果你想发送到所有注册到特定用户的设备,你可以发送到USER-userid;显然,用相应的值替换userid和deviceid。

您可以了解更多关于标签的位置:https://msdn.microsoft.com/library/azure/dn530749.aspx

0

如果你想通知发送到特定的用户必须具有独特的标签或唯一标识符,描述以前的答案阿德里安厅,我同意他的观点进行注册。作为Android中的唯一标识符,您可以使用DeviceId和Ios identifierForVendor,它们是唯一的,它们永远不会改变。

相关问题