/// <summary> /// Injects the supplied javascript message handler into the view. /// </summary> /// <param name="name"> The message callback</param> /// <param name="handler">The name used to expose the object in JavaScript</param> /// <returns>'true' on success, otherwise 'false'</returns> /// <since_tizen> 4 </since_tizen> public bool AddJavaScriptMessageHandler(string name, JavaScriptMessageHandler handler) { lock (_javaScriptMessageHandlerMap) { if (_javaScriptMessageHandlerMap.ContainsKey(name)) { return(false); } _javaScriptMessageHandlerMap[name] = handler; } Interop.ChromiumEwk.ScriptMessageCallback callback = (handle, message) => { JavaScriptMessage convertedMessage = new JavaScriptMessage(message); lock (_javaScriptMessageHandlerMap) { if (_javaScriptMessageHandlerMap.ContainsKey(convertedMessage.Name)) { _javaScriptMessageHandlerMap[convertedMessage.Name](convertedMessage); } } }; if (!Interop.ChromiumEwk.ewk_view_javascript_message_handler_add(_realHandle, callback, name)) { lock (_javaScriptMessageHandlerMap) { _javaScriptMessageHandlerMap.Remove(name); return(false); } } return(true); }
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(); } }
public void AddJavaScriptMessageHandler(string objectName, JavaScriptMessageHandler handler) { if (handlerRootMap.ContainsKey(objectName)) { return; } handlerRootMap.Add(objectName, handler); System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(handler); Interop.WebView.AddJavaScriptMessageHandler(SwigCPtr, objectName, new System.Runtime.InteropServices.HandleRef(this, ip)); if (NDalicPINVOKE.SWIGPendingException.Pending) { throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } }