# WebMessageCompat

Artifact: [androidx.webkit:webkit](https://developer.android.com/jetpack/androidx/releases/webkit) [View Source](https://cs.android.com/search?q=file:androidx/webkit/WebMessageCompat.java+class:androidx.webkit.WebMessageCompat) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.1.0)

*** ** * ** ***


```
public class WebMessageCompat
```

<br />

*** ** * ** ***

The Java representation of the HTML5 PostMessage event. See <https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces> for definition of a MessageEvent in HTML5.

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#TYPE_ARRAY_BUFFER() = 1` Indicates the payload of WebMessageCompat is JavaScript ArrayBuffer. |
| `static final int` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#TYPE_STRING() = 0` Indicates the payload of WebMessageCompat is String. |

| ### Public constructors |
|---|
| `@https://developer.android.com/reference/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/androidx/webkit/WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") https://developer.android.com/reference/androidx/webkit/WebMessageCompat#WebMessageCompat(byte[])(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[] arrayBuffer)` Creates a WebMessage with JavaScript ArrayBuffer payload. |
| `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#WebMessageCompat(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html data)` Creates a WebMessage with String payload. |
| `@https://developer.android.com/reference/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/androidx/webkit/WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") https://developer.android.com/reference/androidx/webkit/WebMessageCompat#WebMessageCompat(byte[],androidx.webkit.WebMessagePortCompat[])( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[] arrayBuffer, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html WebMessagePortCompat[] ports )` Creates a WebMessage with JavaScript ArrayBuffer payload. |
| `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#WebMessageCompat(java.lang.String,androidx.webkit.WebMessagePortCompat[])( @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html data, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html WebMessagePortCompat[] ports )` Creates a WebMessage with String payload. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[]` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getArrayBuffer()()` Returns the ArrayBuffer data of message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getData()()` Returns the String data of the message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html WebMessagePortCompat[]` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getPorts()()` Returns the ports that are sent with the message, or `null` if no port is sent. |
| `int` | `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getType()()` Returns the payload type of the message. |

## Constants

### TYPE_ARRAY_BUFFER

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
public static final int TYPE_ARRAY_BUFFER = 1
```

Indicates the payload of WebMessageCompat is JavaScript ArrayBuffer.

### TYPE_STRING

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
public static final int TYPE_STRING = 0
```

Indicates the payload of WebMessageCompat is String.

## Public constructors

### WebMessageCompat

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
public WebMessageCompat(@NonNull byte[] arrayBuffer)
```

Creates a WebMessage with JavaScript ArrayBuffer payload.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[] arrayBuffer` | the array buffer data of the message. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/androidx/webkit/WebViewFeature#WEB_MESSAGE_ARRAY_BUFFER()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

### WebMessageCompat

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.1.0)

```
public WebMessageCompat(@Nullable String data)
```

Creates a WebMessage with String payload.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html data` | the string of the message. |

### WebMessageCompat

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
public WebMessageCompat(
    @NonNull byte[] arrayBuffer,
    @Nullable WebMessagePortCompat[] ports
)
```

Creates a WebMessage with JavaScript ArrayBuffer payload.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[] arrayBuffer` | the array buffer data of the message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html WebMessagePortCompat[] ports` | the ports that are sent with the message. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/androidx/webkit/WebViewFeature#WEB_MESSAGE_ARRAY_BUFFER()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

### WebMessageCompat

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.1.0)

```
public WebMessageCompat(
    @Nullable String data,
    @Nullable WebMessagePortCompat[] ports
)
```

Creates a WebMessage with String payload.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html data` | the string data of the message. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html WebMessagePortCompat[] ports` | the ports that are sent with the message. |

## Public methods

### getArrayBuffer

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
public @NonNull byte[] getArrayBuffer()
```

Returns the ArrayBuffer data of message. A ArrayBuffer or Transferable ArrayBuffer can be received from JavaScript. This should only be called when `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getType()` returns `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#TYPE_ARRAY_BUFFER()`. Example:

```
WebMessageCompat message = ... // The WebMessageCompat received or prepared.
if (message.getType() == WebMessageCompat.TYPE_ARRAY_BUFFER) {
    byte[] arrayBuffer = message.getArrayBuffer();
    // Access arrayBuffer data here.
}
```

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html byte[]` | ArrayBuffer payload data. |

### getData

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.1.0)

```
public @Nullable String getData()
```

Returns the String data of the message. This should only be called when `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#getType()` returns `https://developer.android.com/reference/androidx/webkit/WebMessageCompat#TYPE_STRING()`. Example:

```
WebMessageCompat message = ... // The WebMessageCompat received or prepared.
if (message.getType() == WebMessageCompat.TYPE_STRING) {
    String string = message.getData();
    // Access string data here.
}
```

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html` | String payload data. |

### getPorts

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.1.0)

```
public @Nullable WebMessagePortCompat[] getPorts()
```

Returns the ports that are sent with the message, or `null` if no port is sent.

### getType

Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.8.0)

```
public int getType()
```

Returns the payload type of the message.

| Returns |
|---|---|
| `int` | the payload type of WebMessageCompat. |