We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Client.postMessage()

这篇翻译不完整。请帮忙从英语翻译这篇文章

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

Client 接口的 Client.postMessage() 方法允许一个服务worker客户端向一个  ServiceWorker发送一个消息。

Syntax

Client.postMessage(message[, transfer]);

Returns

Void.

Parameters

message
The message to send to the service worker.
transfer 可选
A transferable object such as, for example, a reference to a port.

Examples

This code snippet is taken from the service worker post-message sample (see post-message live.) The code sends message data and transfers the port to the service worker so that it can reply via Client.postMessage().

The message is wrapped in a promise that resolves if the response doesn't contain an error and rejects with the error.

function sendMessage(message) {
  return new Promise(function(resolve, reject) {
     var messageChannel = new MessageChannel();
     messageChannel.port1.onmessage = function(event) {
       if (event.data.error) {
         reject(event.data.error);
       } else {
         resolve(event.data);
       }
     };
    navigator.serviceWorker.controller.postMessage(message, [messageChannel.port2]);
  });
}

Specifications

Specification Status Comment
Service Workers
postMessage()
Working Draft Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 45.0[1] 44.0 (44.0)[2] 未实现 ? 未实现
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 未实现 44.0 (44.0) ? 未实现 ? 未实现 45.0 [1]

文档标签和贡献者

此页面的贡献者: xgqfrms-GitHub
最后编辑者: xgqfrms-GitHub,