[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterScrollEdgeReachedCallback")]
public static extern void RegisterScrollEdgeReachedCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterUrlChangedCallback")]
+ public static extern void RegisterUrlChangedCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
+
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_WebView_RegisterNavigationPolicyDecidedCallback")]
public static extern void RegisterNavigationPolicyDecidedCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
private delegate void WebViewScrollEdgeReachedCallback(int edge);
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
+ private delegate void WebViewUrlChangedCallbackDelegate(string pageUrl);
+
+ [UnmanagedFunctionPointer(CallingConvention.StdCall)]
private delegate void WebViewPolicyDecidedCallback(IntPtr maker);
private EventHandler<WebViewPageLoadEventArgs> pageLoadStartedEventHandler;
private EventHandler<WebViewScrollEdgeReachedEventArgs> scrollEdgeReachedEventHandler;
private WebViewScrollEdgeReachedCallback scrollEdgeReachedCallback;
+ private EventHandler<WebViewUrlChangedEventArgs> urlChangedEventHandler;
+ private WebViewUrlChangedCallbackDelegate urlChangedCallback;
+
private EventHandler<WebViewPolicyDecidedEventArgs> navigationPolicyDecidedEventHandler;
private WebViewPolicyDecidedCallback navigationPolicyDecidedCallback;
scrollEdgeReachedEventHandler?.Invoke(this, new WebViewScrollEdgeReachedEventArgs((WebViewScrollEdgeReachedEventArgs.Edge)edge));
}
+ private void OnUrlChanged(string pageUrl)
+ {
+ urlChangedEventHandler?.Invoke(this, new WebViewUrlChangedEventArgs(pageUrl));
+ }
+
private void OnNavigationPolicyDecided(IntPtr maker)
{
navigationPolicyDecidedEventHandler?.Invoke(this, new WebViewPolicyDecidedEventArgs(new WebPolicyDecisionMaker(maker, true)));
}
/// <summary>
+ /// Event for the UrlChanged signal which can be used to subscribe or unsubscribe the event handler.<br />
+ /// This signal is emitted when url is changed.<br />
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler<WebViewUrlChangedEventArgs> UrlChanged
+ {
+ add
+ {
+ if (urlChangedEventHandler == null)
+ {
+ urlChangedCallback = OnUrlChanged;
+ IntPtr ip = Marshal.GetFunctionPointerForDelegate(urlChangedCallback);
+ Interop.WebView.RegisterUrlChangedCallback(SwigCPtr, new HandleRef(this, ip));
+ }
+ urlChangedEventHandler += value;
+ }
+ remove
+ {
+ urlChangedEventHandler -= value;
+ }
+ }
+
+ /// <summary>
/// Event for the NavigationPolicyDecided signal which can be used to subscribe or unsubscribe the event handler.<br />
/// This signal is emitted when response policy would be decided.<br />
/// </summary>
--- /dev/null
+/*
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+
+namespace Tizen.NUI
+{
+ /// <summary>
+ /// Event arguments that passed via the WebView.UrlChanged.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class WebViewUrlChangedEventArgs : EventArgs
+ {
+ internal WebViewUrlChangedEventArgs(string url)
+ {
+ NewPageUrl = url;
+ }
+
+ /// <summary>
+ /// The URL of new web page.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public string NewPageUrl { get; }
+ }
+}