3

我正在尝试使用带有 Windows Azure 作为后端的Safari 推送通知。我能够将Website Push ID: web.com...证书上传到 Azure Mobile Services,并且在apple push notification settings.

为了处理 Web 服务端点(webServiceURL/version/pushPackages/websitePushIDwebServiceURL/version/devices/deviceToken/registrations/websitePushID等),我在移动服务中创建了一个一切正常的 API。

但我无法发送推送通知或收到错误消息。

我的测试代码如下所示:

function send(req, res) {
    var push = req.service.push;
    var devicesTable = req.service.tables.getTable('devices');
    devicesTable.read({
        success: function(devices) {
            devices.forEach(function(device) {

                console.log("send to deviceToken " + device.deviceToken);

                push.apns.send(device.deviceToken, {
                    alert: 'Toast: A new Mobile Services task.',
                    payload: {
                        inAppMessage: "Hey, a new item arrived: '"
                    }
                });

                push.apns.send(device.deviceToken, {
                        alert: {
                            "title": "Test 123 ",
                            "body": "Test 123 ",
                            "action": "View"
                        },
                        "url-args": ["boarding"]
                    },
                    {
                        error : function(err) {
                            console.log("send error " + err);
                        }
                    }
                );

            });
        }
    });

    res.send(200, "");
}

我的问题是字典的格式还是 Azure 移动服务出于某种原因不支持 Safari 推送通知?

据我所知,iOS、Mac 和 Safari 推送通知的 APNS 是相同的。

更新:我用SimplePush测试了它,所以证书和 Safari 的注册一样好。我的有效载荷如下所示:

// Create the payload body
$body['aps'] = array(
    'alert' => array(
        'title' => 'test',
        'body' => $message
    ),
    'url-args'  => array('test'),
);
4

1 回答 1

0

我假设您已按照 Apple 的指导正确注册了 Safari 客户端 - 您是否在非 Azure 实现上测试了您的客户端?查看 Apple 的实施指南,即使没有将 Azure 作为您的推送信息源,也似乎有很多动人的部分。

于 2013-11-19T03:03:04.957 回答