发送推送通知

 

在 JavaScript 后端移动服务中,注册到表操作和计划作业的服务器脚本使用全局 push 对象将推送通知发送到你的应用。 从自定义 API 发送推送通知时,从提供的 request 对象service 属性获取 push 对象,如处理 POST 请求的以下代码中所示:

exports.post = function(request, response) {
    var push = request.service.push;
    // Send a push request to one or more devices, 
    // and then return a 200 status code if no error occurs.
};

若要向设备发送推送通知,你必须对你的移动服务进行配置,以便使用平台特定的推送通知提供程序。 使用通知中心集成时,还必须使用通知中心注册你的客户端。 有关详细信息,请参阅推送通知入门Windows 应用商店 C# / Windows 应用商店 JavaScript / Windows Phone / iOS / Android)。

Windows 应用商店:以下脚本将一个推送作为 toast 通知发送到 Windows 应用商店应用程序 应用。

function insert(comment, user, request) {
    request.execute({
        success: function() {
            var sql = "SELECT channel 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].channel, {
                            text1: comment.username + ' commented on your post!'
                        }, {
                            success: function(pushResponse) {
                                console.log("Sent push:", pushResponse);
                            }
                        });
                    }
                }
            });
            // Write to the response for the original request 
            // while the push notification happens in the background.
            request.respond();
        }
    });
}

Windows Phone:以下脚本将同一个推送作为翻转磁贴通知发送到 Windows Phone 8 应用。

function insert(comment, user, request) {
    request.execute({
        success: function() {
            var sql = "SELECT channel 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.mpns.sendFlipTile(results[0].channel, {
                            title: comment.username + ' commented on your post!'
                        }, {
                            success: function(pushResponse) {
                                console.log("Sent push:", pushResponse);
                            }
                        });
                    }
                }
            });
            // Write to the response for the original request 
            // while the push notification happens in the background.
            request.respond();
        }
    });
}

iOS:以下脚本在某一新项插入到表中时将一个文本通知发送到特定设备。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send the push notification.
            request.respond();
            push.apns.send(item.deviceToken, {
                payload: { itemText: item.text, userId: user.userId } 
            });
        }
    });
}

Android:以下脚本在某一新项插入到表中时将一个文本通知发送到特定设备。

function insert(item, user, request) {
    request.execute({
        success: function() {
            // Write to the response and then send the push notification.
            request.respond();
            push.gcm.send(item.channel, item.text, {
                   success: function(response) {
                       console.log('Push notification sent: ', response);
                }, error: function(error) {
                       console.log('Error sending push notification: ', error);
                }
            });
        }
    });
}

有关详细信息,请参阅移动服务脚本参考

显示: