2 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using System.ComponentModel;
20 using System.Collections.Generic;
21 using System.Runtime.InteropServices;
22 using Tizen.NUI.BaseComponents;
23 using Tizen.NUI.Binding;
30 [EditorBrowsable(EditorBrowsableState.Never)]
31 public class WebView : View
33 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
34 private delegate void WebViewPageLoadCallbackDelegate(IntPtr data, string pageUrl);
36 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
37 private delegate void WebViewPageLoadErrorCallbackDelegate(IntPtr data, string pageUrl, int errorCode);
39 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
40 private delegate void WebViewScrollEdgeReachedCallbackDelegate(IntPtr data, int edge);
42 private readonly WebViewPageLoadSignal pageLoadStartedSignal;
43 private EventHandler<WebViewPageLoadEventArgs> pageLoadStartedEventHandler;
44 private WebViewPageLoadCallbackDelegate pageLoadStartedCallback;
46 private readonly WebViewPageLoadSignal pageLoadFinishedSignal;
47 private EventHandler<WebViewPageLoadEventArgs> pageLoadFinishedEventHandler;
48 private WebViewPageLoadCallbackDelegate pageLoadFinishedCallback;
50 private readonly WebViewPageLoadErrorSignal pageLoadErrorSignal;
51 private EventHandler<WebViewPageLoadErrorEventArgs> pageLoadErrorEventHandler;
52 private WebViewPageLoadErrorCallbackDelegate pageLoadErrorCallback;
54 private readonly WebViewScrollEdgeReachedSignal scrollEdgeReachedSignal;
55 private EventHandler<WebViewScrollEdgeReachedEventArgs> scrollEdgeReachedEventHandler;
56 private WebViewScrollEdgeReachedCallbackDelegate scrollEdgeReachedCallback;
58 internal WebView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.WebView.WebView_SWIGUpcast(cPtr), cMemoryOwn)
60 pageLoadStartedSignal = new WebViewPageLoadSignal(Interop.WebView.new_WebViewPageLoadSignal_PageLoadStarted(swigCPtr));
61 pageLoadFinishedSignal = new WebViewPageLoadSignal(Interop.WebView.new_WebViewPageLoadSignal_PageLoadFinished(swigCPtr));
62 pageLoadErrorSignal = new WebViewPageLoadErrorSignal(Interop.WebView.new_WebViewPageLoadErrorSignal_PageLoadError(swigCPtr));
63 scrollEdgeReachedSignal = new WebViewScrollEdgeReachedSignal(Interop.WebView.NewWebViewScrollEdgeReachedSignalScrollEdgeReached(swigCPtr));
66 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WebView obj)
68 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
71 internal WebView Assign(WebView webView)
73 WebView ret = new WebView(Interop.WebView.WebView_Assign(swigCPtr, WebView.getCPtr(webView)), false);
74 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
78 internal static WebView DownCast(BaseHandle handle)
80 WebView ret = new WebView(Interop.WebView.WebView_DownCast(BaseHandle.getCPtr(handle)), true);
81 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
86 /// Dispose for IDisposable pattern
88 [EditorBrowsable(EditorBrowsableState.Never)]
89 protected override void Dispose(DisposeTypes type)
96 if (type == DisposeTypes.Explicit)
99 //Release your own managed resources here.
100 //You should release all of your own disposable objects here.
101 pageLoadStartedSignal.Dispose();
102 pageLoadFinishedSignal.Dispose();
103 pageLoadErrorSignal.Dispose();
109 /// This will not be public opened.
110 /// <param name="swigCPtr"></param>
111 [EditorBrowsable(EditorBrowsableState.Never)]
112 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
114 Interop.WebView.delete_WebView(swigCPtr);
117 private void OnPageLoadStarted(IntPtr data, string pageUrl)
119 WebViewPageLoadEventArgs e = new WebViewPageLoadEventArgs();
121 e.WebView = Registry.GetManagedBaseHandleFromNativePtr(data) as WebView;
124 if (pageLoadStartedEventHandler != null)
126 pageLoadStartedEventHandler(this, e);
130 private void OnPageLoadFinished(IntPtr data, string pageUrl)
132 WebViewPageLoadEventArgs e = new WebViewPageLoadEventArgs();
134 e.WebView = Registry.GetManagedBaseHandleFromNativePtr(data) as WebView;
137 if (pageLoadFinishedEventHandler != null)
139 pageLoadFinishedEventHandler(this, e);
143 private void OnPageLoadError(IntPtr data, string pageUrl, int errorCode)
145 WebViewPageLoadErrorEventArgs e = new WebViewPageLoadErrorEventArgs();
147 e.WebView = Registry.GetManagedBaseHandleFromNativePtr(data) as WebView;
149 e.ErrorCode = (WebViewPageLoadErrorEventArgs.LoadErrorCode)errorCode;
151 if (pageLoadErrorEventHandler != null)
153 pageLoadErrorEventHandler(this, e);
157 private void OnScrollEdgeReached(IntPtr data, int edge)
159 WebViewScrollEdgeReachedEventArgs arg = new WebViewScrollEdgeReachedEventArgs((WebViewScrollEdgeReachedEventArgs.Edge)edge);
160 scrollEdgeReachedEventHandler?.Invoke(this, arg);
163 internal static new class Property
165 internal static readonly int URL = Interop.WebView.WebView_Property_URL_get();
166 internal static readonly int CACHE_MODEL = Interop.WebView.WebView_Property_CACHE_MODEL_get();
167 internal static readonly int COOKIE_ACCEPT_POLICY = Interop.WebView.WebView_Property_COOKIE_ACCEPT_POLICY_get();
168 internal static readonly int USER_AGENT = Interop.WebView.WebView_Property_USER_AGENT_get();
169 internal static readonly int ENABLE_JAVASCRIPT = Interop.WebView.WebView_Property_ENABLE_JAVASCRIPT_get();
170 internal static readonly int LOAD_IMAGES_AUTOMATICALLY = Interop.WebView.WebView_Property_LOAD_IMAGES_AUTOMATICALLY_get();
171 internal static readonly int DEFAULT_TEXT_ENCODING_NAME = Interop.WebView.WebView_Property_DEFAULT_TEXT_ENCODING_NAME_get();
172 internal static readonly int DEFAULT_FONT_SIZE = Interop.WebView.WebView_Property_DEFAULT_FONT_SIZE_get();
173 internal static readonly int ScrollPosition = Interop.WebView.ScrollPositionGet();
174 internal static readonly int ScrollSize = Interop.WebView.ScrollSizeGet();
175 internal static readonly int ContentSize = Interop.WebView.ContentSizeGet();
178 private static readonly BindableProperty UrlProperty = BindableProperty.Create(nameof(Url), typeof(string), typeof(WebView), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
180 var webview = (WebView)bindable;
181 if (newValue != null)
183 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.URL, new Tizen.NUI.PropertyValue((string)newValue));
186 defaultValueCreator: (bindable) =>
188 var webview = (WebView)bindable;
190 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.URL).Get(out temp);
194 private static readonly BindableProperty CacheModelProperty = BindableProperty.Create(nameof(CacheModel), typeof(CacheModel), typeof(WebView), CacheModel.DocumentViewer, propertyChanged: (bindable, oldValue, newValue) =>
196 var webview = (WebView)bindable;
197 if (newValue != null)
199 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.CACHE_MODEL, new Tizen.NUI.PropertyValue((int)newValue));
202 defaultValueCreator: (bindable) =>
204 var webview = (WebView)bindable;
206 if (Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.CACHE_MODEL).Get(out temp) == false)
208 NUILog.Error("CacheModel get error!");
212 case "DOCUMENT_VIEWER": return CacheModel.DocumentViewer;
213 case "DOCUMENT_BROWSER": return CacheModel.DocumentBrowser;
214 default: return CacheModel.PrimaryWebBrowser;
218 private static readonly BindableProperty CookieAcceptPolicyProperty = BindableProperty.Create(nameof(CookieAcceptPolicy), typeof(CookieAcceptPolicy), typeof(WebView), CookieAcceptPolicy.NoThirdParty, propertyChanged: (bindable, oldValue, newValue) =>
220 var webview = (WebView)bindable;
221 if (newValue != null)
223 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.COOKIE_ACCEPT_POLICY, new Tizen.NUI.PropertyValue((int)newValue));
226 defaultValueCreator: (bindable) =>
228 var webview = (WebView)bindable;
230 if (Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.COOKIE_ACCEPT_POLICY).Get(out temp) == false)
232 NUILog.Error("CookieAcceptPolicy get error!");
236 case "ALWAYS": return CookieAcceptPolicy.Always;
237 case "NEVER": return CookieAcceptPolicy.Never;
238 default: return CookieAcceptPolicy.NoThirdParty;
242 private static readonly BindableProperty UserAgentProperty = BindableProperty.Create(nameof(UserAgent), typeof(string), typeof(WebView), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
244 var webview = (WebView)bindable;
245 if (newValue != null)
247 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.USER_AGENT, new Tizen.NUI.PropertyValue((string)newValue));
250 defaultValueCreator: (bindable) =>
252 var webview = (WebView)bindable;
254 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.USER_AGENT).Get(out temp);
258 private static readonly BindableProperty EnableJavaScriptProperty = BindableProperty.Create(nameof(EnableJavaScript), typeof(bool), typeof(WebView), true, propertyChanged: (bindable, oldValue, newValue) =>
260 var webview = (WebView)bindable;
261 if (newValue != null)
263 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.ENABLE_JAVASCRIPT, new Tizen.NUI.PropertyValue((bool)newValue));
266 defaultValueCreator: (bindable) =>
268 var webview = (WebView)bindable;
270 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.ENABLE_JAVASCRIPT).Get(out temp);
274 private static readonly BindableProperty LoadImagesAutomaticallyProperty = BindableProperty.Create(nameof(LoadImagesAutomatically), typeof(bool), typeof(WebView), true, propertyChanged: (bindable, oldValue, newValue) =>
276 var webview = (WebView)bindable;
277 if (newValue != null)
279 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.LOAD_IMAGES_AUTOMATICALLY, new Tizen.NUI.PropertyValue((bool)newValue));
282 defaultValueCreator: (bindable) =>
284 var webview = (WebView)bindable;
286 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.LOAD_IMAGES_AUTOMATICALLY).Get(out temp);
290 private static readonly BindableProperty DefaultTextEncodingNameProperty = BindableProperty.Create(nameof(DefaultTextEncodingName), typeof(string), typeof(WebView), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
292 var webview = (WebView)bindable;
293 if (newValue != null)
295 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.DEFAULT_TEXT_ENCODING_NAME, new Tizen.NUI.PropertyValue((string)newValue));
298 defaultValueCreator: (bindable) =>
300 var webview = (WebView)bindable;
302 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.DEFAULT_TEXT_ENCODING_NAME).Get(out temp);
306 private static readonly BindableProperty DefaultFontSizeProperty = BindableProperty.Create(nameof(DefaultFontSize), typeof(int), typeof(WebView), 16, propertyChanged: (bindable, oldValue, newValue) =>
308 var webview = (WebView)bindable;
309 if (newValue != null)
311 Tizen.NUI.Object.SetProperty(webview.swigCPtr, WebView.Property.DEFAULT_FONT_SIZE, new Tizen.NUI.PropertyValue((int)newValue));
314 defaultValueCreator: (bindable) =>
316 var webview = (WebView)bindable;
318 Tizen.NUI.Object.GetProperty(webview.swigCPtr, WebView.Property.DEFAULT_FONT_SIZE).Get(out temp);
323 private static readonly BindableProperty ScrollPositionProperty = BindableProperty.Create(nameof(ScrollPosition), typeof(Vector2), typeof(WebView), null, propertyChanged: (bindable, oldValue, newValue) =>
325 var webview = (WebView)bindable;
326 if (newValue != null)
328 Tizen.NUI.Object.SetProperty(webview.SwigCPtr, WebView.Property.ScrollPosition, new Tizen.NUI.PropertyValue((Vector2)newValue));
331 defaultValueCreator: (bindable) =>
333 var webview = (WebView)bindable;
334 Vector2 temp = new Vector2(0.0f, 0.0f); ;
335 Tizen.NUI.Object.GetProperty(webview.SwigCPtr, WebView.Property.ScrollPosition).Get(temp);
339 private static readonly BindableProperty ScrollSizeProperty = BindableProperty.Create(nameof(ScrollSize), typeof(Vector2), typeof(WebView), null, defaultValueCreator: (bindable) =>
341 var webview = (WebView)bindable;
342 Vector2 temp = new Vector2(0.0f, 0.0f); ;
343 Tizen.NUI.Object.GetProperty(webview.SwigCPtr, WebView.Property.ScrollSize).Get(temp);
347 private static readonly BindableProperty ContentSizeProperty = BindableProperty.Create(nameof(ContentSize), typeof(Vector2), typeof(WebView), null, defaultValueCreator: (bindable) =>
349 var webview = (WebView)bindable;
350 Vector2 temp = new Vector2(0.0f, 0.0f); ;
351 Tizen.NUI.Object.GetProperty(webview.SwigCPtr, WebView.Property.ContentSize).Get(temp);
356 /// Creates an uninitialized WebView.
358 [EditorBrowsable(EditorBrowsableState.Never)]
359 public WebView() : this(Interop.WebView.WebView_New(), true)
361 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
366 /// Creates an uninitialized WebView.
367 /// <param name="locale">The locale of Web</param>
368 /// <param name="timezoneId">The timezoneId of Web</param>
370 [EditorBrowsable(EditorBrowsableState.Never)]
371 public WebView(string locale, string timezoneId) : this(Interop.WebView.WebView_New_2(locale, timezoneId), true)
373 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
377 /// Copy constructor.
378 /// <param name="webView">WebView to copy. The copied WebView will point at the same implementation</param>
380 [EditorBrowsable(EditorBrowsableState.Never)]
381 public WebView(WebView webView) : this(Interop.WebView.new_WebView__SWIG_1(WebView.getCPtr(webView)), true)
383 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
389 [EditorBrowsable(EditorBrowsableState.Never)]
394 return (string)GetValue(UrlProperty);
398 SetValue(UrlProperty, value);
399 NotifyPropertyChanged();
404 /// The cache model of the current WebView.
406 [EditorBrowsable(EditorBrowsableState.Never)]
407 public CacheModel CacheModel
411 return (CacheModel)GetValue(CacheModelProperty);
415 SetValue(CacheModelProperty, value);
416 NotifyPropertyChanged();
421 /// The cookie acceptance policy.
423 [EditorBrowsable(EditorBrowsableState.Never)]
424 public CookieAcceptPolicy CookieAcceptPolicy
428 return (CookieAcceptPolicy)GetValue(CookieAcceptPolicyProperty);
432 SetValue(CookieAcceptPolicyProperty, value);
433 NotifyPropertyChanged();
438 /// The user agent string.
440 [EditorBrowsable(EditorBrowsableState.Never)]
441 public string UserAgent
445 return (string)GetValue(UserAgentProperty);
449 SetValue(UserAgentProperty, value);
450 NotifyPropertyChanged();
455 /// Whether JavaScript is enabled.
457 [EditorBrowsable(EditorBrowsableState.Never)]
458 public bool EnableJavaScript
462 return (bool)GetValue(EnableJavaScriptProperty);
466 SetValue(EnableJavaScriptProperty, value);
467 NotifyPropertyChanged();
472 /// Whether images can be loaded automatically.
474 [EditorBrowsable(EditorBrowsableState.Never)]
475 public bool LoadImagesAutomatically
479 return (bool)GetValue(LoadImagesAutomaticallyProperty);
483 SetValue(LoadImagesAutomaticallyProperty, value);
484 NotifyPropertyChanged();
489 /// The default text encoding name.<br />
490 /// e.g. "UTF-8"<br />
492 [EditorBrowsable(EditorBrowsableState.Never)]
493 public string DefaultTextEncodingName
497 return (string)GetValue(DefaultTextEncodingNameProperty);
501 SetValue(DefaultTextEncodingNameProperty, value);
502 NotifyPropertyChanged();
507 /// The default font size in pixel.
509 [EditorBrowsable(EditorBrowsableState.Never)]
510 public int DefaultFontSize
514 return (int)GetValue(DefaultFontSizeProperty);
518 SetValue(DefaultFontSizeProperty, value);
519 NotifyPropertyChanged();
524 /// The postion of scroll.
526 [EditorBrowsable(EditorBrowsableState.Never)]
527 public Position ScrollPosition
531 Vector2 pv = (Vector2)GetValue(ScrollPositionProperty);
532 return new Position(pv.X, pv.Y);
539 Vector2 vpv = new Vector2(pv.X, pv.Y);
540 SetValue(ScrollPositionProperty, vpv);
541 NotifyPropertyChanged();
547 /// The size of scroll, read-only.
549 [EditorBrowsable(EditorBrowsableState.Never)]
550 public Size ScrollSize
554 Vector2 sv = (Vector2)GetValue(ScrollSizeProperty);
555 return new Size(sv.Width, sv.Height);
560 /// The size of content, read-only.
562 [EditorBrowsable(EditorBrowsableState.Never)]
563 public Size ContentSize
567 Vector2 sv = (Vector2)GetValue(ContentSizeProperty);
568 return new Size(sv.Width, sv.Height);
573 /// Event for the PageLoadStarted signal which can be used to subscribe or unsubscribe the event handler.<br />
574 /// This signal is emitted when page loading has started.<br />
576 [EditorBrowsable(EditorBrowsableState.Never)]
577 public event EventHandler<WebViewPageLoadEventArgs> PageLoadStarted
581 if (pageLoadStartedEventHandler == null)
583 pageLoadStartedCallback = (OnPageLoadStarted);
584 pageLoadStartedSignal.Connect(pageLoadStartedCallback);
586 pageLoadStartedEventHandler += value;
590 pageLoadStartedEventHandler -= value;
591 if (pageLoadStartedEventHandler == null && pageLoadStartedCallback != null)
593 pageLoadStartedSignal.Disconnect(pageLoadStartedCallback);
599 /// Event for the PageLoadFinished signal which can be used to subscribe or unsubscribe the event handler.<br />
600 /// This signal is emitted when page loading has finished.<br />
602 [EditorBrowsable(EditorBrowsableState.Never)]
603 public event EventHandler<WebViewPageLoadEventArgs> PageLoadFinished
607 if (pageLoadFinishedEventHandler == null)
609 pageLoadFinishedCallback = (OnPageLoadFinished);
610 pageLoadFinishedSignal.Connect(pageLoadFinishedCallback);
612 pageLoadFinishedEventHandler += value;
616 pageLoadFinishedEventHandler -= value;
617 if (pageLoadFinishedEventHandler == null && pageLoadFinishedCallback != null)
619 pageLoadFinishedSignal.Disconnect(pageLoadFinishedCallback);
625 /// Event for the PageLoadError signal which can be used to subscribe or unsubscribe the event handler.<br />
626 /// This signal is emitted when there's an error in page loading.<br />
628 [EditorBrowsable(EditorBrowsableState.Never)]
629 public event EventHandler<WebViewPageLoadErrorEventArgs> PageLoadError
633 if (pageLoadErrorEventHandler == null)
635 pageLoadErrorCallback = (OnPageLoadError);
636 pageLoadErrorSignal.Connect(pageLoadErrorCallback);
638 pageLoadErrorEventHandler += value;
642 pageLoadErrorEventHandler -= value;
643 if (pageLoadErrorEventHandler == null && pageLoadErrorCallback != null)
645 pageLoadErrorSignal.Disconnect(pageLoadErrorCallback);
651 /// Event for the ScrollEdgeReached signal which can be used to subscribe or unsubscribe the event handler.<br />
652 /// This signal is emitted when web view is scrolled to edge.<br />
654 [EditorBrowsable(EditorBrowsableState.Never)]
655 public event EventHandler<WebViewScrollEdgeReachedEventArgs> ScrollEdgeReached
659 if (scrollEdgeReachedEventHandler == null)
661 scrollEdgeReachedCallback = OnScrollEdgeReached;
662 scrollEdgeReachedSignal.Connect(scrollEdgeReachedCallback);
664 scrollEdgeReachedEventHandler += value;
668 scrollEdgeReachedEventHandler -= value;
669 if (scrollEdgeReachedEventHandler == null && scrollEdgeReachedCallback != null)
671 scrollEdgeReachedSignal.Disconnect(scrollEdgeReachedCallback);
678 /// <param name="url">The path of Web</param>
680 [EditorBrowsable(EditorBrowsableState.Never)]
681 public void LoadUrl(string url)
683 Interop.WebView.WebView_LoadUrl(swigCPtr, url);
684 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
688 /// Returns the URL of the Web
689 /// <param name="data">The data of Web</param>
691 [EditorBrowsable(EditorBrowsableState.Never)]
692 public void LoadHTMLString(string data)
694 Interop.WebView.WebView_LoadHTMLString(swigCPtr, data);
695 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
701 [EditorBrowsable(EditorBrowsableState.Never)]
704 Interop.WebView.WebView_Reload(swigCPtr);
705 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
709 /// Stops loading the Web
711 [EditorBrowsable(EditorBrowsableState.Never)]
712 public void StopLoading()
714 Interop.WebView.WebView_StopLoading(swigCPtr);
715 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
719 /// Suspends the operation.
721 [EditorBrowsable(EditorBrowsableState.Never)]
722 public void Suspend()
724 Interop.WebView.WebView_Suspend(swigCPtr);
725 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
729 /// Resumes the operation after calling Suspend()
731 [EditorBrowsable(EditorBrowsableState.Never)]
734 Interop.WebView.WebView_Resume(swigCPtr);
735 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
739 /// Scroll web view by deltaX and detlaY.
740 /// <param name="deltaX">The deltaX of scroll</param>
741 /// <param name="deltaY">The deltaY of scroll</param>
743 [EditorBrowsable(EditorBrowsableState.Never)]
744 public void ScrollBy(int deltaX, int deltaY)
746 Interop.WebView.ScrollBy(SwigCPtr, deltaX, deltaY);
747 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
753 [EditorBrowsable(EditorBrowsableState.Never)]
756 Interop.WebView.WebView_GoBack(swigCPtr);
757 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
761 /// Goes to the forward
763 [EditorBrowsable(EditorBrowsableState.Never)]
764 public void GoForward()
766 Interop.WebView.WebView_GoForward(swigCPtr);
767 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
771 /// Returns whether backward is possible.
772 /// <returns>True if backward is possible, false otherwise</returns>
774 [EditorBrowsable(EditorBrowsableState.Never)]
775 public bool CanGoBack()
777 bool ret = Interop.WebView.WebView_CanGoBack(swigCPtr);
778 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
783 /// Returns whether forward is possible.
784 /// <returns>True if forward is possible, false otherwise</returns>
786 [EditorBrowsable(EditorBrowsableState.Never)]
787 public bool CanGoForward()
789 bool ret = Interop.WebView.WebView_CanGoForward(swigCPtr);
790 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
795 /// The callback function that is invoked when the message is received from the script.
797 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
798 [EditorBrowsable(EditorBrowsableState.Never)]
799 public delegate void JavaScriptMessageHandler(string message);
802 /// Evaluates JavaScript code represented as a string.
803 /// <param name="script">The JavaScript code</param>
805 [EditorBrowsable(EditorBrowsableState.Never)]
806 public void EvaluateJavaScript(string script)
808 Interop.WebView.WebView_EvaluateJavaScript(swigCPtr, script, new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero));
809 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
812 // For rooting handlers
813 internal Dictionary<string, JavaScriptMessageHandler> handlerRootMap = new Dictionary<string, JavaScriptMessageHandler>();
816 /// Add a message handler into the WebView.
817 /// <param name="objectName">The name of exposed object</param>
818 /// <param name="handler">The callback function</param>
820 [EditorBrowsable(EditorBrowsableState.Never)]
821 public void AddJavaScriptMessageHandler(string objectName, JavaScriptMessageHandler handler)
823 if (handlerRootMap.ContainsKey(objectName))
828 handlerRootMap.Add(objectName, handler);
830 System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(handler);
831 Interop.WebView.WebView_AddJavaScriptMessageHandler(swigCPtr, objectName, new System.Runtime.InteropServices.HandleRef(this, ip));
833 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
837 /// Clears the history of current WebView.
839 [EditorBrowsable(EditorBrowsableState.Never)]
840 public void ClearHistory()
842 Interop.WebView.WebView_ClearHistory(swigCPtr);
843 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
847 /// Clears the cache of current WebView.
849 [EditorBrowsable(EditorBrowsableState.Never)]
850 public void ClearCache()
852 Interop.WebView.WebView_ClearCache(swigCPtr);
853 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
857 /// Clears all the cookies of current WebView.
859 [EditorBrowsable(EditorBrowsableState.Never)]
860 public void ClearCookies()
862 Interop.WebView.WebView_ClearCookies(swigCPtr);
863 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();