Web推送通知正文未显示

时间:2019-03-15 11:26:32

标签: php push-notification

我正在使用php Web push发送通知

这是php代码

$notifContent888 = array(
       'title' => 'test tiltle',
       'body' => 'This is the body content',
       'icon' => 'https://png.pngtree.com/element_origin_min_pic/16/08/05/1057a3fae73b91b.jpg',
);


$pay_load9988=json_encode($notifContent888);

$subscription_new = Subscription::create([
                'endpoint' => $endpoint,
                'publicKey' => $publicKey_99,
                'authToken' => $authToken,
                'contentEncoding' => $contentEncoding,
]);

$webPush = new WebPush($auth);

$webPush->sendNotification($subscription_new, $pay_load9988, true);

这是服务人员js部分

if (event.data) {
    var payload = event.data.json();
    var title = payload.title;
    var body  = payload.body;
    var icon  = payload.icon;
    console.log(payload); 
    event.waitUntil(sendNotification(title, {
        body: body,
        icon: icon,
        data: {} 
}

我可以看到console.log中的所有数据都很好,但是我只收到带有默认标题和正文的通知,并且不显示图标。我可以在控制台中看到正文和图标,如果我用正文替换标题,可以看到正文内容,但是我不知道发生了什么,只有一部分,无论我在sendNotification(title < / p>

只有标题会出现

找出错误的任何帮助将是巨大的。有效载荷的加密问题吗?

1 个答案:

答案 0 :(得分:0)

使用sendNotification时不需要加密数据,因为sendNotification已经为您加密了。参见:https://www.npmjs.com/package/web-push

所以您应该像这样更改代码:

$notifContent888 = array(
       'title' => 'test tiltle',
       'body' => 'This is the body content',
       'icon' => 'https://png.pngtree.com/element_origin_min_pic/16/08/05/1057a3fae73b91b.jpg',
);

$subscription_new = Subscription::create([
                'endpoint' => $endpoint,
                'publicKey' => $publicKey_99,
                'authToken' => $authToken,
                'contentEncoding' => $contentEncoding,
]);

$webPush = new WebPush($auth);

$webPush->sendNotification($subscription_new, $notifContent888, true);