Skip to content
Snippets Groups Projects
Select Git revision
  • 0b1eaf92ab8741548793dadf4dda7280a422630d
  • main default
2 results

WebViewComponent.cs

Blame
  • WebViewComponent.cs 8.73 KiB
    using bessw.Unity.WebView.ChromeDevTools;
    using bessw.Unity.WebView.ChromeDevTools.Protocol.Input;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Serialization;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.EventSystems;
    using UnityEngine.UI;
    
    namespace bessw.Unity.WebView
    {
        [RequireComponent(typeof(RawImage))]
        public class WebViewComponent : MonoBehaviour, IPointerDownHandler, IPointerMoveHandler, IPointerUpHandler, IPointerEnterHandler, IDropHandler, IPointerExitHandler
        {
            #region json serializer
    
            /// <summary>
            /// Json serializer settings for the user space objects (e.g. transfering objects that have been droped on the BrowserView)
            /// Users are allowed to change serializer settings to their liking.
            /// </summary>
            public static JsonSerializerSettings serializerSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters = new List<JsonConverter>()
                    {
                        new ColorConverter(),
                        new Vector2Converter(),
                        new Vector3Converter(),
                        new Vector4Converter()
                    }
            };
            /// <summary>
            /// JsonSerializer for the user space objects (e.g. transfering objects that have been droped on the BrowserView)
            /// Users are allowed to change serializer settings to their liking.
            /// </summary>
            public static JsonSerializer serializer = JsonSerializer.Create(serializerSettings);
    
            #endregion json serializer
    
            private Browser browser;
            protected BrowserTab tab;
    
            private RawImage rawImage;
            private RectTransform rectTransform;
    
            public bool headlessBrowser = true;
            //TODO: handle changed targetUrl
            public string targetUrl = "https://google.de";
    
            // Start is called before the first frame update
            private void Start()
            {
                Debug.LogWarning("start Webview");
                rawImage = this.gameObject.GetComponent<RawImage>();
                rectTransform = this.gameObject.GetComponent<RectTransform>();
            }
    
            private void OnEnable()
            {
                Debug.LogWarning("enable Webview");
                Browser.headless = headlessBrowser;
                browser = Browser.getInstance();
    
                //StartCoroutine(GetOpenTabs());
                var c = StartCoroutine(browser.OpenNewTab(targetUrl, (BrowserTab bt) =>
                {
                    tab = bt;
                    StartCoroutine(tab.Update());
                    //StartCoroutine(createScreenshots());