Javascript 如何将webpush添加到模型中?
显示在控制器中工作的内容Javascript 如何将webpush添加到模型中?,javascript,jquery,ruby-on-rails,service-worker,web-push,Javascript,Jquery,Ruby On Rails,Service Worker,Web Push,显示在控制器中工作的内容 post "/push" do Webpush.payload_send( message: params[:message], endpoint: params[:subscription][:endpoint], p256dh: params[:subscription][:keys][:p256dh], auth: params[:subscription][:keys][:auth], vapid: { s
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\u web\u push(title:'Here is title',body:'Here is body')
我特别关注如何重构js代码
navigator.serviceWorker.ready
.then((serviceWorkerRegistration) => {
serviceWorkerRegistration.pushManager.getSubscription()
.then((subscription) => {
$.post('/push', {
subscription: subscription.toJSON(),
});
});
});
因此,订阅
将通过send\u web\u 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
你可以看到
使用Firebase享受编码和处理数据库的新方式
那么,当有人为您的模型创建新记录时,您是否试图触发Web推送?