WebMessagePort
abstract class WebMessagePort
kotlin.Any | |
↳ | android.webkit.WebMessagePort |
The Java representation of the HTML5 message ports.
A Message port represents one endpoint of a Message Channel. In Android webview, there is no separate Message Channel object. When a message channel is created, both ports are tangled to each other and started, and then returned in a MessagePort array, see WebView#createWebMessageChannel
for creating a message channel.
When a message port is first created or received via transfer, it does not have a WebMessageCallback to receive web messages. The messages are queued until a WebMessageCallback is set.
A message port should be closed when it is not used by the embedder application anymore. A closed port cannot be transferred or cannot be reopened to send messages. Close can be called multiple times.
When a port is transferred to JS, it cannot be used to send or receive messages at the Java side anymore. Different from HTML5 Spec, a port cannot be transferred if one of these has ever happened: i. a message callback was set, ii. a message was posted on it. A transferred port cannot be closed by the application, since the ownership is also transferred.
It is possible to transfer both ports of a channel to JS, for example for communication between subframes.
Summary
Nested classes | |
---|---|
abstract |
The listener for handling MessagePort events. |
Public methods | |
---|---|
abstract Unit |
close() Close the message port and free any resources associated with it. |
abstract Unit |
postMessage(message: WebMessage!) Post a WebMessage to the entangled port. |
abstract Unit |
Sets a callback to receive message events on the main thread. |
abstract Unit |
setWebMessageCallback(callback: WebMessagePort.WebMessageCallback!, handler: Handler!) Sets a callback to receive message events on the handler that is provided by the application. |
Public methods
close
abstract fun close(): Unit
Close the message port and free any resources associated with it.
postMessage
abstract fun postMessage(message: WebMessage!): Unit
Post a WebMessage to the entangled port.
Parameters | |
---|---|
message |
WebMessage!: the message from Java to JS. |
Exceptions | |
---|---|
java.lang.IllegalStateException |
If message port is already transferred or closed. |
setWebMessageCallback
abstract fun setWebMessageCallback(callback: WebMessagePort.WebMessageCallback!): Unit
Sets a callback to receive message events on the main thread.
Parameters | |
---|---|
callback |
WebMessagePort.WebMessageCallback!: the message callback. |
setWebMessageCallback
abstract fun setWebMessageCallback(
callback: WebMessagePort.WebMessageCallback!,
handler: Handler!
): Unit
Sets a callback to receive message events on the handler that is provided by the application.
Parameters | |
---|---|
callback |
WebMessagePort.WebMessageCallback!: the message callback. |
handler |
Handler!: the handler to receive the message messages. |