JavaScriptReplyProxy
@UiThread
public abstract class JavaScriptReplyProxy
This class represents the JavaScript object injected by WebViewCompat#addWebMessageListener. An instance will be given by WebMessageListener#onPostMessage. The app can use postMessage to talk to the JavaScript context.
There is a 1:1 relationship between this object and the JavaScript object in a frame.
| See also | |
|---|---|
addWebMessageListener |
Summary
Public methods |
|
|---|---|
abstract void |
@RequiresFeature(name = WebViewFeature.JS_INJECTION_IN_FRAME_AND_WORLD, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")Executes JavaScript in the frame and world that sent this |
abstract void |
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")Post a ArrayBuffer message to the injected JavaScript object which sent this |
abstract void |
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_LISTENER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")Post a String message to the injected JavaScript object which sent this |
Public methods
executeJavaScript
@RequiresFeature(name = WebViewFeature.JS_INJECTION_IN_FRAME_AND_WORLD, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
public abstract void executeJavaScript(
@NonNull String script,
@Nullable WebViewOutcomeReceiver<String, JavaScriptExecutionException> receiver
)
Executes JavaScript in the frame and world that sent this JavaScriptReplyProxy. The result of the JavaScript execution will be passed to the WebViewOutcomeReceiver callback.
| Parameters | |
|---|---|
@Nullable WebViewOutcomeReceiver<String, JavaScriptExecutionException> receiver |
The |
@NonNull String script |
The JavaScript to execute. |
| Throws | |
|---|---|
java.lang.UnsupportedOperationException |
if the |
postMessage
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_ARRAY_BUFFER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
public abstract void postMessage(@NonNull byte[] arrayBuffer)
Post a ArrayBuffer message to the injected JavaScript object which sent this JavaScriptReplyProxy. Be aware that large byte buffers can lead to out-of-memory crashes on low-end devices.
| Parameters | |
|---|---|
@NonNull byte[] arrayBuffer |
The ArrayBuffer to send to the JavaScript context. An empty ArrayBuffer is supported. |
| Throws | |
|---|---|
java.lang.UnsupportedOperationException |
if the |
postMessage
@RequiresFeature(name = WebViewFeature.WEB_MESSAGE_LISTENER, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
public abstract void postMessage(@NonNull String message)
Post a String message to the injected JavaScript object which sent this JavaScriptReplyProxy.
| Throws | |
|---|---|
java.lang.UnsupportedOperationException |
if the |