【问题标题】:How to add webpush to model?如何将 webpush 添加到模型中?
【发布时间】:2017-09-23 09:08:11
【问题描述】:

webpush documentation 显示控制器中的工作原理...

post "/push" do
  Webpush.payload_send(
    message: params[:message],
    endpoint: params[:subscription][:endpoint],
    p256dh: params[:subscription][:keys][:p256dh],
    auth: params[:subscription][:keys][:auth],
    vapid: {
      subject: "mailto:sender@example.com",
      public_key: ENV['VAPID_PUBLIC_KEY'],
      private_key: ENV['VAPID_PRIVATE_KEY']
    }
  )
end

但我正在尝试重构为模型,以便可以开始运行 rake 任务challenge.send_web_push(title: 'Here is a title', body: 'Here is a body')

我特别纠结于如何重构 js 代码...

navigator.serviceWorker.ready
.then((serviceWorkerRegistration) => {
  serviceWorkerRegistration.pushManager.getSubscription()
  .then((subscription) => {
    $.post('/push', {
      subscription: subscription.toJSON(),
    });
  });
});

这样subscription 将通过send_web_push 创建...

def send_web_push(title: , body: )
  Webpush.payload_send(
    vapid: {
      subject: "mailto:sender@example.com",
      public_key: "BB1BO99HPVefIunkzz8sZSNhlEKuH62olxDKHx9qsEsjtnIF8DdvE8Yp5rxTOSF-VqY2hdjBxeUqulVs9E2XUXjQ=",
      private_key: "SUvPgPr9PU_YAyvHorM0NcaMbSLEoOzqdyLlN2OgRN2Q="
    },
    message: {
      title: title,                 
      body: body,                  
      icon: "assets/default.png" 
    }.to_json
  )
end

【问题讨论】:

  • 那么,当有人为您的模型创建新记录时,您是否尝试触发 Web 推送?

标签: javascript jquery ruby-on-rails service-worker web-push


【解决方案1】:

你可以在https://firebase.google.com/docs/cloud-messaging/js/看到

使用 Firebase 享受编码和处理数据库的新方式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 2021-08-02
    相关资源
    最近更新 更多