我正在开发 Tizen 可穿戴独立 Web应用程序,并希望集成Firebase以合并通知功能。我按照firebase使用Javascript提供的所有步骤。但我无法获得令牌并最终得到以下错误:
Failed to register a ServiceWorker: The URL protocol of the current origin
('file://') is not supported."
code: "messaging/failed-serviceworker-registration"
message: "Messaging: We are unable to register the default service worker.
Failed to register a ServiceWorker: The URL protocol of the current origin
('file://') is not supported. (messaging/failed-serviceworker-
registration)."
stack: (...)
我试过
navigator.serviceWorker.register('/sw.js').then(function(registration) {
console.log("success")
firebase.messaging().useServiceWorker(registration)
// Registration was successful
console.log('ServiceWorker registration successful with scope: ',registration.scope);
// registration.pushManager.subscribe({
console.log('Registration was successful1');
// userVisibleOnly: true
}).then(function(sub) {
console.log('endpoint:', sub.endpoint);
}).catch(function(e) {
console.log('Registration Failed',e);
});
但无法让它发挥作用。请告知我FCM是否为Tizen Web应用程序提供支持,因为我看到FCM提供商已授予Android,iOS和Javascript访问权限。但我没有看到对Tizen Web应用程序(可穿戴混合应用程序)的支持。
答案 0 :(得分:0)
Tizen Web应用程序不支持服务工作者。 FCM JavaScript API需要服务工作者支持。
您可以尝试使用此简单的代码段来检查服务工作者支持。
if ('serviceWorker' in navigator)
alert('Service worker is Supported');
else
alert('Service worker is not Supported');
我在Firefox,Chrome上试过了代码片段 (快捷方式:开发人员工具>控制台>粘贴代码>输入)。
两者都支持服务工作者。但是当我在Tizen Web应用程序的js文件中添加此代码块时,它会警告“不支持”。
在Google开发人员上注册服务工作者的代码示例在注册之前首先包括此检查服务工作者API可用性。
关于Native Mobile环境而不是Web,FCM支持Android和iOS Native环境,但不支持Tizen Native。