エクスポート (0) 印刷
すべて展開

プッシュ通知の送信

更新日: 2014年4月

JavaScript バックエンド モバイル サービスで、テーブル操作とスケジュールされたジョブに登録されているサーバー スクリプトは、グローバルな push オブジェクトを使用して、アプリにプッシュ通知を送信します。カスタム API からプッシュ通知を送信する場合、push オブジェクトは、POST 要求を処理する次のコードのように、指定された request オブジェクトservice プロパティから取得されます。

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 ストア: 次のスクリプトでは、プッシュをトースト通知として 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);
                }
            });
        }
    });
}

詳細については、「モバイル サービスのスクリプト リファレンス」を参照してください。

表示:
© 2015 Microsoft