我正在使用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>
只有标题会出现
找出错误的任何帮助将是巨大的。有效载荷的加密问题吗?
答案 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);