导出 (0) 打印
全部展开

wns 对象

更新时间: 2015年2月

在 Microsoft Azure 移动服务服务器脚本中公开 Windows 通知服务 (WNS) 的功能。

此对象包含以下方法,并设置一组用于发送通知的方法:

向特定通道发送磁贴通知,其中 sendTile* 方法的每个版本都使用一个不同的 WNS 磁贴模板。

 

Parameter 说明

channel

必要的通道 URI 值或 URI 值数组,其指示接收通知的通道。

payload

包含通知信息的必要对象,其中所需的字段基于特定通知的 toast 模板。例如,调用 sendTileWideImageAndText02 方法时,提供含有以下字段的 payload 对象:

{
    text1: 'text field 1',
    text2: 'text field 2',
    image1src: 'image1.png',
    image1alt: 'alt text'
}

有关 payload 对象中字段的命名和排序的信息,请参阅备注。

options

用于提供 success 和 error 回调以及其他可选的通知行为的对象:

{
    success: success,
    error: error,
    headers: wns_headers 
}

其中 success 是发送通知后调用的函数,error 是发生错误时调用的函数,headers 是发送到 WNS 的请求中要包括的任何其他 HTTP 请求头的列表。

有关可用的 HTTP 请求头的列表,请参阅Push notification service request and response headers

未定义。

向特定通道发送 toast 通知,其中 sendToast* 方法的每个版本都使用一个不同的 toast 模板。

wns.sendToast*(channel, payload, options)

星号 (*) 是某个磁贴模板的占位符,如下所示:

 

Parameter 说明

channel

必要的通道 URI 值或 URI 值数组,其指示接收通知的通道。

payload

包含通知信息的必要对象,其中所需的字段基于特定通知的 toast 模板。例如,调用 sendToastImageAndText03 方法时,提供含有以下字段的 payload 对象:

{
    text1: 'headline text',
    text2: 'body text',
    image1src: 'image1.png',
    image1alt: 'alt text'
}

有关 payload 对象中字段的命名和排序的信息,请参阅备注。

options

用于提供 success 和 error 回调以及其他可选的通知行为的对象:

{
    success: success,
    error: error,
    headers: wns_headers, 
    launch: launch_uri,
    duration: duration_time 
}

其中 success 是发送通知后调用的函数,error 是发生错误时调用的函数,headers 是发送到 WNS 的请求中要包括的任何其他 HTTP 请求头的列表,launch_uri 是引发 toast 通知时要导航到的可选 URI,duration_time 是显示 toast 通知的时间长度。

有关可用的 HTTP 请求头的列表,请参阅Push notification service request and response headers

duration_time 字段的有效值为 longshort

未定义。

向特定通道发送锁屏提醒通知。

wns.sendBadge(channel, value, options)

 

Parameter 说明

channel

必要的通道 URI 值或 URI 值数组,其指示接收通知的通道。

value

指定预定义锁屏提醒字形的数字值或字符串值。就数字而言,此值可接受任何有效的整数。值为 0 清除锁屏提醒,值为 1-99 显示给定值,任何大于 99 的值显示为 99+。支持的字符串值包括以下各项



  • activity

  • alert

  • 可用

  • away

  • busy

  • newMessage

  • 已暂停

  • playing

  • unavailable

  • error

  • attention

有关详细信息,请参阅Badge schema

options

用于提供 success 和 error 回调以及其他可选的通知行为的对象:

{
    success: success,
    error: error,
    headers: wns_headers, 
}

其中 success 是发送通知后调用的函数,error 是发生错误时调用的函数,headers 是发送到 WNS 的请求中要包括的任何其他 HTTP 请求头的列表。

有关可用的 HTTP 请求头的列表,请参阅Push notification service request and response headers

未定义。

向特定通道发送原始通知。

wns.sendRaw(channel, value, options)

 

Parameter 说明

channel

必要的通道 URI 值或 URI 值数组,其指示接收通知的通道。

value

不做修改地传送到客户端的应用程序特有字符串。

options

用于提供 success 和 error 回调以及其他可选的通知行为的对象:

{
    success: success,
    error: error,
    headers: wns_headers, 
}

其中 success 是发送通知后调用的函数,error 是发生错误时调用的函数,headers 是发送到 WNS 的请求中要包括的任何其他 HTTP 请求头的列表。

有关可用的 HTTP 请求头的列表,请参阅Push notification service request and response headers

未定义。

向特定通道发送预设格式的通知。

Important重要提示
若要使用此方法,必须了解所选通知类型的具体负载格式。

wns.send(channel, payload, type, value, options)

 

Parameter 说明

channel

必要的通道 URI 值或 URI 值数组,其指示接收通知的通道。

payload

不做修改地传送到客户端的应用程序特有字符串。

有关负载格式的信息,请阅读 Windows 应用商店应用程序文档中的推送通知主题。有关详细信息,请参阅The tile template catalogThe toast template catalogBadge overview

type

按以下某个字符串值指定通知的类型:

 

说明

wns/badge

在磁贴上创建锁屏提醒叠加的通知。必须将通知请求中包括的 Content-Type 头设置为“text/xml”。

wns/tile

更新磁贴内容的通知。必须将通知请求中包括的 Content-Type 头设置为“text/xml”。

wns/toast

在客户端上引发 toast 的通知。必须将通知请求中包括的 Content-Type 头设置为“text/xml”。

wns/raw

可包含自定义负载并直接传送到应用程序的通知。必须将通知请求中包括的 Content-Type 头设置为“application/octet-stream”。

options

用于提供 success 和 error 回调以及其他可选的通知行为的对象:

{
    success: success,
    error: error,
    headers: wns_headers, 
}

其中 success 是发送通知后调用的函数,error 是发生错误时调用的函数,headers 是发送到 WNS 的请求中要包括的任何其他 HTTP 请求头的列表。

有关可用的 HTTP 请求头的列表,请参阅Push notification service request and response headers

未定义。

在根据特定模板命名和排序字段方面,payload 对象有以下注意事项:

  • textN 按文档顺序指定第 N 个文本字段的字符串值,从 1 开始。

  • imageNsrc 按文档顺序指定第 N 个图像的 URL,从 1 开始。

  • imageNalt 按文档顺序指定第 N 个图像的 alt 文本,从 1 开始。

  • 假定任何缺少的字段均为空字符串。

  • 忽略特定模板不需要的任何额外字段。

调用 sendRaw 方法时,通知负载将传送到应用程序,而不在 UI 中显示。有关更多信息,请参见Raw notification overview (Windows Store apps)

以下脚本使用 wns 对象向 Windows 应用商店应用程序发送 toast 通知。

function insert(comment, user, request) { 
  request.execute({ 
    success: function() { 
      var sql = "SELECT deviceId FROM devices " + 
      "INNER JOIN posts ON devices.userId = posts.userId " + 
      "WHERE posts._id = ?"; 
      mssql.query(sql, [comment.postId], { 
        success: function(results) { 
          if(results.length > 0) { 
            push.wns.sendToastText04(results[0].deviceId, { 
              text1: comment.username + ' commented on your post!' 
            }); 
          } 
        } 
      }); 
      // Write to the response for the original request while the push notification happens in the background 
      request.respond(); 
    } 
  }); 
}

以下脚本调用 wns 对象的 sendRaw 方法以使用 ToastImageAndText03 模板发送预设格式的 toast 通知。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send a raw notification in the background.
            request.respond();
            push.wns.sendRaw(item.channel,'{ notification: raw, text: "Raw notification string" }' + 
            item.text, {
                success: function(pushResponse) {
                    console.log("Sent push:", pushResponse);
                }
            });
        }
    });
}

以下脚本调用 wns 对象的 send 方法以使用 ToastImageAndText03 模板发送预设格式的 toast 通知。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send the pre-formatted notification in the background.
            request.respond();
            push.wns.send(item.channel,'<toast launch=""><visual lang="en-US">' +
            '<binding template="ToastImageAndText03"><image id="1" src="imageUri" />' + 
            '<text id="1">Template: ToastImageAndText03</text>' + 
            '<text id="2">' + item.text + '</text></binding></visual></toast>',
            "wns/toast", {
                success: function(pushResponse) {
                    console.log("Sent push:", pushResponse);
                }
            });
        }
    });
}

显示:
© 2015 Microsoft