如何使用service worker存储一个用户id
How to store a user id using service worker
是否有一种方法可以在service worker中存储用户id和其他可能的信息?
所以当你发送推送通知给它时,它能够使用本地存储的信息并对它做一些事情?
我试图使用localStorage,但它似乎不认识它。
当我得到这个错误:
Uncaught ReferenceError: localStorage is not defined
本地存储在Service worker中是不可用的,因为它没有异步API。Service Worker被设计成完全异步的,所以在Service Worker上下文中没有同步api可用。您可以使用IndexedDB,但不幸的是,它的API要笨拙得多。
最近想完成同样的事情。IndexedDB对于传递UID来说太沉重了。但是后来我意识到你可以通过service worker url路径中的查询参数传递UID…
navigator.serviceWorker.register(`/public/js/lib/service-worker.js?uid=${window.uid}`).then((reg) => {
…然后通过解析service worker中的location
来访问它。
PARAMS . view . JS . view . view . view . view . view . view . view . view . view . view . view . view。search en service worker.
index . html
window.my_user_id = 16;
RegisterSW ()
navigator.serviceWorker.register('PNServiceWorker.js?my_user_id='+window.my_user_id)
enel Service Worker, self.location.search contentdrel valor: ?uid=16
保存订阅服务器:
....
if (self.location.search !== undefined) {
body.params = self.location.search.substring(1); // my_user_id=16
}
var fetchdata = {
method: 'post',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body),
}
var response = await fetch(strSubscriberURL, fetchdata);
return await response.json();
...
相关文章:
- 分析:一个用户可以创建另一个用户吗
- 通过 Stripe 向用户收费,并将资金存入另一个用户帐户
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- 当至少有一个用户触发事件而不刷新页面时,更改所有用户页面中的内容
- 一个用户脚本的两个实例如何在帧之间进行通信
- c#mvc一次只允许一个用户编辑树视图
- 有没有办法仅使用 JavaScript 来操纵控制台.log输出和下一个用户输入提示之间的时间
- 在 PHP 中弹出到同一应用程序的另一个用户
- 如何在另一个用户控件 ID 中获取用户控件 ID
- 如何在 C# 中将文本框值从一个用户控件获取到另一个用户控件
- 快速返回“;用户未被授权”;当修改来自另一个用户的对象时
- Node.js聊天服务器,当另一个用户发送数据时,客户端断开连接
- 有没有一种正确的方法可以确保一次只有一个用户使用REST+HTTP对对象进行更改
- 为什么为一个用户渲染的模板不为另一个用户进行渲染
- 如何使用service worker存储一个用户id
- Parse.com安全性:我可以保存一个对象并将其声明为另一个用户吗?
- 可以一个网站知道,如果我正在运行一个用户脚本
- Facebook只有一个用户权限窗口
- 为什么一个用户只有在使用VPN时才能正确地看到我的网站?
- 在Express中使用Mongoose将一个模型引用到一个用户模型