diff --git a/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java b/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java index f429e50..f6aa91e 100644 --- a/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java +++ b/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java @@ -915,7 +915,21 @@ public class RNCWebViewManager extends SimpleViewManager { } public void onMessage(String message) { - dispatchEvent(this, new TopMessageEvent(this.getId(), message)); + if (mRNCWebViewClient != null) { + WebView webView = this; + webView.post(new Runnable() { + @Override + public void run() { + WritableMap data = mRNCWebViewClient.createWebViewEvent(webView, webView.getUrl()); + data.putString("data", message); + dispatchEvent(webView, new TopMessageEvent(webView.getId(), data)); + } + }); + } else { + WritableMap eventData = Arguments.createMap(); + eventData.putString("data", message); + dispatchEvent(this, new TopMessageEvent(this.getId(), eventData)); + } } protected void onScrollChanged(int x, int y, int oldX, int oldY) { diff --git a/android/src/main/java/com/reactnativecommunity/webview/events/TopMessageEvent.kt b/android/src/main/java/com/reactnativecommunity/webview/events/TopMessageEvent.kt index c9fa8f9..c53837d 100644 --- a/android/src/main/java/com/reactnativecommunity/webview/events/TopMessageEvent.kt +++ b/android/src/main/java/com/reactnativecommunity/webview/events/TopMessageEvent.kt @@ -1,13 +1,13 @@ package com.reactnativecommunity.webview.events -import com.facebook.react.bridge.Arguments +import com.facebook.react.bridge.WritableMap import com.facebook.react.uimanager.events.Event import com.facebook.react.uimanager.events.RCTEventEmitter /** * Event emitted when there is an error in loading. */ -class TopMessageEvent(viewId: Int, private val mData: String) : Event(viewId) { +class TopMessageEvent(viewId: Int, private val mEventData: WritableMap) : Event(viewId) { companion object { const val EVENT_NAME = "topMessage" } @@ -19,8 +19,6 @@ class TopMessageEvent(viewId: Int, private val mData: String) : Event