# 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)

*** ** * ** ***

<br />

```
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 |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#TYPE_ARRAY_BUFFER() = 1` Indicates the payload of WebMessageCompat is JavaScript ArrayBuffer. |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#TYPE_STRING() = 0` Indicates the payload of WebMessageCompat is String. |

| ### Public constructors |
|---|
| `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#WebMessageCompat(byte[])(arrayBuffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>)` Creates a WebMessage with JavaScript ArrayBuffer payload. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#WebMessageCompat(java.lang.String)(data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Creates a WebMessage with String payload. |
| `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#WebMessageCompat(byte[],androidx.webkit.WebMessagePortCompat[])( arrayBuffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>, ports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/WebMessagePortCompat!>? )` Creates a WebMessage with JavaScript ArrayBuffer payload. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#WebMessageCompat(java.lang.String,androidx.webkit.WebMessagePortCompat[])(data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, ports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/WebMessagePortCompat!>?)` Creates a WebMessage with String payload. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>` | `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#getArrayBuffer()()` Returns the ArrayBuffer data of message. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#getData()()` Returns the String data of the message. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/WebMessagePortCompat!>?` | `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#getPorts()()` Returns the ports that are sent with the message, or `null` if no port is sent. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/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)

```
const val TYPE_ARRAY_BUFFER = 1: Int
```

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)

```
const val TYPE_STRING = 0: Int
```

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")
WebMessageCompat(arrayBuffer: ByteArray<Byte>)
```

Creates a WebMessage with JavaScript ArrayBuffer payload.

| Parameters |
|---|---|
| `arrayBuffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>` | the array buffer data of the message. |

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

### WebMessageCompat

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

```
WebMessageCompat(data: String?)
```

Creates a WebMessage with String payload.

| Parameters |
|---|---|
| `data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | 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")
WebMessageCompat(
    arrayBuffer: ByteArray<Byte>,
    ports: Array<WebMessagePortCompat!>?
)
```

Creates a WebMessage with JavaScript ArrayBuffer payload.

| Parameters |
|---|---|
| `arrayBuffer: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>` | the array buffer data of the message. |
| `ports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/WebMessagePortCompat!>?` | 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/kotlin/androidx/webkit/WebViewFeature#WEB_MESSAGE_ARRAY_BUFFER()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

### WebMessageCompat

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

```
WebMessageCompat(data: String?, ports: Array<WebMessagePortCompat!>?)
```

Creates a WebMessage with String payload.

| Parameters |
|---|---|
| `data: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | the string data of the message. |
| `ports: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/WebMessagePortCompat!>?` | the ports that are sent with the message. |

## Public functions

### getArrayBuffer

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

```
fun getArrayBuffer(): Array<Byte>
```

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/kotlin/androidx/webkit/WebMessageCompat#getType()` returns `https://developer.android.com/reference/kotlin/androidx/webkit/WebMessageCompat#TYPE_ARRAY_BUFFER()`. Example:

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

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-byte/index.html>` | ArrayBuffer payload data. |

### getData

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

```
fun getData(): String?
```

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

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

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | String payload data. |

### getPorts

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

```
fun getPorts(): Array<WebMessagePortCompat!>?
```

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)

```
fun getType(): Int
```

Returns the payload type of the message.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the payload type of WebMessageCompat. |