小编The*_*bby的帖子

如何使用带有FCM的服务工作者进行推送通知

我正在尝试使用Firebase的服务工作者在chrome上实现推送通知.我的网络应用程序中有一个清单文件和一个sw.js文件.我在Firebase中创建了一个项目,并测试了注册和发送通知.除了在接收通知时数据为空,这一切都正常.我不明白为什么,没有任何有用的资源(据我所知!).这是我的服务工作者文件:

self.addEventListener('push', function(event) {
  console.log('Push message', event);
  var title = 'Push message';
  event.waitUntil(
    self.registration.showNotification(title, {
      body: 'The Message',
      icon: 'images/logo.svg',
      tag: 'my-tag'
  }));
});
Run Code Online (Sandbox Code Playgroud)

这是我的main.js文件:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js').then(function(registration) {
    // Registration was successful
    console.log('ServiceWorker registration successful with scope: ',    registration.scope);
    registration.pushManager.subscribe({
      userVisibleOnly: true
    }).then(function(sub) {
      console.log('endpoint:', sub.endpoint);
    }).catch(function(e) {

    });
  }).catch(function(err) {
    // registration failed :(
    console.log('ServiceWorker registration failed: ', err);
  });
}
Run Code Online (Sandbox Code Playgroud)

manifest.json的:

{
  "name": "APPNAME",
  "gcm_sender_id": "SENDERID"
}
Run Code Online (Sandbox Code Playgroud)

cURL请求:

curl --header "Authorization: key=APIKEY" -application/json" https://fcm.googleapis.com/fcm/send …
Run Code Online (Sandbox Code Playgroud)

javascript firebase service-worker firebase-cloud-messaging

13
推荐指数
1
解决办法
1万
查看次数

使用PHP的APNS无法启用加密错误

我正在尝试使用以下PHP代码发送iOS推送通知.

我不确定它是语法错误还是逻辑错误.我已经尝试重新生成.pem,检查端口和检查文件权限.一切都很好.我不太确定是什么导致了这个.我在App Engine上运行它.这可能是原因,但我不确定.我知道其他人已成功完成此任何帮助将不胜感激.

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'dev.pem');

$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

if (!$fp)
{
  //Handle Error
}

$body['aps'] = array(
  'alert' => $data["message"],
  'sound' => 'default'
);
$body["postID"] = $data["postID"];
$body["groupID"] = $data["groupID"];
$body["type"] = $data["type"];

$payload = json_encode($body);

foreach ($registrationIds as $registrationID)
{
  $msg = chr(0) . pack('n', 32) . pack('H*', $registrationID) . pack('n', strlen($payload)) . $payload;
  $result = fwrite($fp, $msg, strlen($msg));
}

fclose($fp);
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误:

PHP Warning:  stream_socket_client(): Failed to enable …
Run Code Online (Sandbox Code Playgroud)

php ssl google-app-engine apple-push-notifications ios

5
推荐指数
1
解决办法
1438
查看次数