From: Jiyun Yang Date: Mon, 21 Jan 2019 05:44:46 +0000 (+0900) Subject: [NUI] Add |AddJavaScriptInterface| API for WebView (#676) X-Git-Tag: 5.5_M2~330 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=df37691283f41d2bb16013147eb4b5938b92eb4b;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Add |AddJavaScriptInterface| API for WebView (#676) This API provides a method of c# delegate injection to JavaScript Signed-off-by: Jiyun Yang --- diff --git a/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs b/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs index ca713a7..73a9e45 100755 --- a/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs +++ b/src/Tizen.NUI/src/internal/NDalicPINVOKE.cs @@ -15051,6 +15051,11 @@ namespace Tizen.NUI + [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_WebView_AddJavaScriptMessageHandler")] + public static extern void WebView_AddJavaScriptMessageHandler(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3); + + + [global::System.Runtime.InteropServices.DllImport("libdali-csharp-binder.so", EntryPoint = "CSharp_Dali_WebView_ClearHistory")] public static extern void WebView_ClearHistory(global::System.Runtime.InteropServices.HandleRef jarg1); diff --git a/src/Tizen.NUI/src/internal/WebView.cs b/src/Tizen.NUI/src/internal/WebView.cs index 8c11196..d559ce6 100755 --- a/src/Tizen.NUI/src/internal/WebView.cs +++ b/src/Tizen.NUI/src/internal/WebView.cs @@ -409,6 +409,26 @@ namespace Tizen.NUI } /// + /// The callback function that is invoked when the message is received from the script. + /// + [UnmanagedFunctionPointer(CallingConvention.StdCall)] + [EditorBrowsable(EditorBrowsableState.Never)] + public delegate void JavaScriptMessageHandler(string message); + + /// + /// Add a message handler into the WebView. + /// The name of exposed object + /// The callback function + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public void AddJavaScriptMessageHandler(string objectName, JavaScriptMessageHandler handler) + { + System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(handler); + NDalicPINVOKE.WebView_AddJavaScriptMessageHandler(swigCPtr, objectName, new System.Runtime.InteropServices.HandleRef(this, ip)); + if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + } + + /// /// Clears the history of Web. /// [EditorBrowsable(EditorBrowsableState.Never)]