在Chromium关于服务工作者的网页上,有人指出
iOS上的Chrome不支持服务工作者.
我假设它可以使用一些cordova插件传送到iOS.在iOS设备上有没有其他方法可以使用Service Workers?
我担心在iOS上发布新版本和新版本的cordova之间的时间.
有谁知道iOS上的Chrome是否会在未来支持服务工作者?:)
我正在尝试使用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) 我正在考虑使用服务工作人员使我的应用程序脱机.我已经通过缓存资源获得了令人满意的结果,但我还必须检查是否已连接到互联网,如果没有 - 存储请求,并将其推送到同步.
我明白,未来的onsync将有助于此,但我需要 - 甚至是临时的 - 解决方案.
我曾尝试将请求存储在worker中的数组中,但它不是持久的 - 在计算机重启后不起作用(当SW工作并提供脱机内容时).
什么是好方向 - 以某种方式将其存储在缓存中?或者使用IndexedDB/SimpleDB(在ServiceWorker中访问indexedDB.竞争条件)?
如果在本地网络中的两个对等体之间建立了WebRTC连接,那么在失去与互联网的连接之后我们可以维护它吗?这似乎是可能的,因为它是点对点的.
在谷歌Chrome控制台旁边的HTTP状态代码Request我们有信息(from ServiceWorker).
可以Request知道这Response来自ServiceWorker?比较date从Response Headers可能?