[Tizen] Add WebView's JavascriptMessageHandler callback 73/316473/1
authordongsug.song <dongsug.song@samsung.com>
Wed, 7 Aug 2024 06:31:51 +0000 (15:31 +0900)
committerdongsug.song <dongsug.song@samsung.com>
Thu, 22 Aug 2024 03:25:05 +0000 (12:25 +0900)
- JavascriptMessageHandler callback which has two arguments of msg name and body

Change-Id: Ib4ee5144411e248ec4cd15c6d0e8b2ffe762d663

dali-csharp-binder/dali-toolkit/web-view-wrap.cpp

index 588b55f55648e65f7eaeb9b901678f515dd5f451..8a606b1b994eb8fd1d7893715ae5b06529ec09d2 100755 (executable)
@@ -646,6 +646,25 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_AddJavaScriptMessageHandler(void
   }
 }
 
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_AddJavaScriptEntireMessageHandler(void * jarg1, char * jarg2, void * jarg3) {
+  if (!jarg2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+    return;
+  }
+
+  Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView*)jarg1;
+  std::string exposedObjectName = jarg2;
+  void (*handler)(char*, char*) = (void (*)(char*, char*))jarg3;
+
+  {
+    try {
+      webview->AddJavaScriptEntireMessageHandler(exposedObjectName, [handler](const std::string &messageName, const std::string &messageBody) {
+            handler(SWIG_csharp_string_callback(messageName.c_str()), SWIG_csharp_string_callback(messageBody.c_str()));
+          });
+    } CALL_CATCH_EXCEPTION();
+  }
+}
+
 SWIGEXPORT void SWIGSTDCALL CSharp_Dali_WebView_RegisterJavaScriptAlertCallback(void * jarg1, void * jarg2) {
   Dali::Toolkit::WebView* webview = (Dali::Toolkit::WebView*)jarg1;
   bool (*handler)(const char*) = (bool (*)(const char*))jarg2;