void SetupControl()
        {
            _navigationDelegate = new FormsNavigationDelegate(this);
            _contentController  = new WKUserContentController();
            _contentController.AddScriptMessageHandler(this, "invokeAction");
            _configuration = new WKWebViewConfiguration {
                UserContentController = _contentController,
            };
            _configuration.ProcessPool = _processPool;

            var wkWebView = new WKWebView(Frame, _configuration)
            {
                Opaque             = false,
                UIDelegate         = this,
                NavigationDelegate = _navigationDelegate,
            };

            FormsWebView.CallbackAdded += OnCallbackAdded;

            try {
                //Autoresize after rotation. Wrapped in try catch with no handling since untested
                wkWebView.ContentMode      = UIViewContentMode.ScaleAspectFit;
                wkWebView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;
                wkWebView.SizeToFit();

                if (wkWebView.ScrollView != null)
                {
                    wkWebView.ScrollView.Bounces = false;
                }
            } catch { /*Do nothing right now*/ }


            SetNativeControl(wkWebView);
            OnControlChanged?.Invoke(this, wkWebView);
        }
Beispiel #2
0
        void SetupControl(FormsWebView element)
        {
            WebViewControlDelegate.OnNavigationRequestedFromUser += OnUserNavigationRequested;
            WebViewControlDelegate.OnInjectJavascriptRequest     += OnInjectJavascriptRequested;
            WebViewControlDelegate.OnStackNavigationRequested    += OnStackNavigationRequested;
            WebViewControlDelegate.OnActionAdded += OnActionAdded;

            UserController = new WKUserContentController();
            UserController.AddScriptMessageHandler(this, "invokeAction");

            NavigationDelegate   = new FormsWKNavigationDelegate(this, element);
            WebViewConfiguration = new WKWebViewConfiguration {
                UserContentController = UserController
            };

            var webView = new WKWebView(Frame, WebViewConfiguration);

            webView.Opaque             = false;
            webView.UIDelegate         = this;
            webView.NavigationDelegate = NavigationDelegate;
            webView.ScalesPageToFit    = true;

            OnControlChanging?.Invoke(this, Element, Control);
            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, Element, Control);
        }
Beispiel #3
0
        void SetupControl()
        {
            var uiWebView = new UIWebView(Frame);

            uiWebView.BackgroundColor = UIColor.Black;

            FormsWebView.CallbackAdded += OnCallbackAdded;

            uiWebView.LoadError       += UiWebView_LoadError;
            uiWebView.LoadStarted     += UiWebView_LoadStarted;
            uiWebView.LoadFinished    += UiWebView_LoadFinished;
            uiWebView.ShouldStartLoad += UiWebView_ShouldStartLoad;

            if (uiWebView.ScrollView != null)
            {
                uiWebView.ScrollView.Bounces = false;
            }

            uiWebView.ContentMode      = UIViewContentMode.ScaleAspectFit;
            uiWebView.AutoresizingMask = UIViewAutoresizing.All;
            uiWebView.ScalesPageToFit  = true;

            SetNativeControl(uiWebView);
            OnControlChanged?.Invoke(this, uiWebView);
        }
        private void SetupControl(FormsWebView element)
        {
            WebViewControlDelegate.OnNavigationRequestedFromUser += OnUserNavigationRequested;
            WebViewControlDelegate.OnInjectJavascriptRequest     += OnInjectJavascriptRequested;
            WebViewControlDelegate.OnActionAdded += OnActionAdded;

            UserController = new WKUserContentController();
            UserController.AddScriptMessageHandler(this, "invokeAction");

            NavigationDelegate   = new FormsWKNavigationDelegate(this, element);
            WebViewConfiguration = new WKWebViewConfiguration {
                UserContentController = UserController
            };

            var webView = new WKWebView(Frame, WebViewConfiguration);

            webView.UIDelegate         = this;
            webView.NavigationDelegate = NavigationDelegate;

            UriBase = NSBundle.MainBundle.ResourcePath;

            OnControlChanging?.Invoke(this, Element, Control);
            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, Element, Control);
        }
        private void SetupControl()
        {
            var webView = new Android.Webkit.WebView(Forms.Context);

            // https://github.com/SKLn-Rad/Xam.Plugin.WebView.Webview/issues/11
            webView.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);

            // Defaults
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.DomStorageEnabled = true;

            webView.Settings.AllowFileAccess                  = true;
            webView.Settings.AllowFileAccessFromFileURLs      = true;
            webView.Settings.AllowUniversalAccessFromFileURLs = true;
            webView.Settings.AllowContentAccess               = true;
            webView.Settings.SetAppCacheEnabled(false);
            webView.Settings.CacheMode = CacheModes.NoCache;

            webView.AddJavascriptInterface(new HybridWebViewBridge(this), "bridge");
            webView.SetWebViewClient(new HybridWebViewClient(this));
            webView.SetWebChromeClient(new HybridWebViewChromeClient(this));
            webView.SetBackgroundColor(Android.Graphics.Color.Transparent);

            HybridWebViewControl.CallbackAdded += OnCallbackAdded;
            SetNativeControl(webView);
            SetUserAgent();
            OnControlChanged?.Invoke(this, webView);
        }
        void SetupControl()
        {
            _webView  = new WebViewEx(Forms.Context);
            _callback = new JavascriptValueCallback(this);

            // https://github.com/SKLn-Rad/Xam.Plugin.WebView.Webview/issues/11
            _webView.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);

            // Defaults
            _webView.Settings.JavaScriptEnabled = true;
            _webView.Settings.DomStorageEnabled = true;
            _webView.Settings.AllowFileAccess   = true;
            _webView.Settings.AllowUniversalAccessFromFileURLs = true;
            _webView.Settings.AllowFileAccessFromFileURLs      = true;
            _webView.AddJavascriptInterface(new FormsWebViewBridge(this), "bridge");
            _webView.SetWebViewClient(new FormsWebViewClient(this));
            _webView.SetWebChromeClient(new FormsWebViewChromeClient(this, (Activity)Forms.Context));
            _webView.SetBackgroundColor(Android.Graphics.Color.Transparent);

            FormsWebView.CallbackAdded += OnCallbackAdded;

            SetNativeControl(_webView);
            SetUserAgent();
            OnControlChanged?.Invoke(this, _webView);
        }
        void SetupControl()
        {
            var webView = new Android.Webkit.WebView(Forms.Context);

            _callback = new JavascriptValueCallback(this);

            // https://github.com/SKLn-Rad/Xam.Plugin.WebView.Webview/issues/11
            webView.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);

            // Defaults
            if (webView.Settings == null)
            {
                return;
            }
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.DomStorageEnabled = true;
            webView.AddJavascriptInterface(new FormsWebViewBridge(this), "bridge");
            webView.SetWebViewClient(new FormsWebViewClient(this));
            webView.SetWebChromeClient(new FormsWebViewChromeClient(this));
            webView.SetBackgroundColor(Android.Graphics.Color.Transparent);

            FormsWebView.CallbackAdded += OnCallbackAdded;

            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, webView);
        }
Beispiel #8
0
        private void SetupControl()
        {
            _navigationDelegate = new HybridWebViewNavigationDelegate(this);
            _contentController  = new WKUserContentController();
            _contentController.AddScriptMessageHandler(this, "invokeAction");
            _configuration = new WKWebViewConfiguration
            {
                UserContentController     = _contentController,
                AllowsInlineMediaPlayback = true
            };


            var wkWebView = new WKWebView(Frame, _configuration)
            {
                Opaque             = false,
                UIDelegate         = this,
                NavigationDelegate = _navigationDelegate,
            };


            HybridWebViewControl.CallbackAdded += OnCallbackAdded;

            SetNativeControl(wkWebView);
            SetUserAgent();
            OnControlChanged?.Invoke(this, wkWebView);
        }
        void SetupControl()
        {
            _navigationDelegate = new FormsNavigationDelegate(this);
            _contentController  = new WKUserContentController();
            _contentController.AddScriptMessageHandler(this, "invokeAction");
            _configuration = new WKWebViewConfiguration {
                UserContentController = _contentController
            };

            if (Element.ApplicationNameForUserAgent != null && Element.ApplicationNameForUserAgent.Length > 0)
            {
                _configuration.ApplicationNameForUserAgent = Element.ApplicationNameForUserAgent;
            }

            var wkWebView = new WKWebView(Frame, _configuration)
            {
                Opaque             = false,
                UIDelegate         = this,
                NavigationDelegate = _navigationDelegate
            };

            FormsWebView.CallbackAdded += OnCallbackAdded;

            SetNativeControl(wkWebView);
            OnControlChanged?.Invoke(this, wkWebView);
        }
        private void SetupControl(FormsWebView element)
        {
            WebViewControlDelegate.OnNavigationRequestedFromUser += OnUserNavigationRequested;
            WebViewControlDelegate.OnInjectJavascriptRequest     += InjectJavascript;
            WebViewControlDelegate.OnActionAdded += OnActionAdded;
            var control = new Windows.UI.Xaml.Controls.WebView();

            OnControlChanging?.Invoke(this, Element, control);
            _resolver = new LocalFileStreamResolver(this);

            SetNativeControl(control);
            OnControlChanged?.Invoke(this, Element, control);
        }
Beispiel #11
0
        void SetupControl(FormsWebView element)
        {
            var webView = new Android.Webkit.WebView(Forms.Context);

            webView.SetWebViewClient((WebViewClient = new FormsWebViewClient(element, this)));
            webView.SetWebChromeClient((ChromeClient = new FormsWebViewChromeClient(this)));

            // Defaults
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.DomStorageEnabled = true;

            OnControlChanging?.Invoke(this, element, webView);
            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, element, webView);
        }
Beispiel #12
0
        public bool ChangeClientUID(uint _clientUID)
        {
            bool controlChanged = false;
            uint oldClientUID   = ClientUID;

            SetClientUID(_clientUID);

            if (ClientUID != oldClientUID)
            {
                // control effectively changed > call event handlers
                controlChanged = true;
                OnControlChanged?.Invoke(this, oldClientUID);
            }

            return(controlChanged);
        }
        void SetupControl()
        {
            var control = new Windows.UI.Xaml.Controls.WebView();

            _resolver = new LocalFileStreamResolver(this);

            SetNativeControl(control);

            FormsWebView.CallbackAdded    += OnCallbackAdded;
            Control.NavigationStarting    += OnNavigationStarting;
            Control.NavigationCompleted   += OnNavigationCompleted;
            Control.DOMContentLoaded      += OnDOMContentLoaded;
            Control.ScriptNotify          += OnScriptNotify;
            Control.DefaultBackgroundColor = Windows.UI.Colors.Transparent;
            OnControlChanged?.Invoke(this, control);
        }
        private void SetupControl(FormsWebView element)
        {
            WebViewControlDelegate.OnNavigationRequestedFromUser += OnUserNavigationRequested;
            WebViewControlDelegate.OnInjectJavascriptRequest     += OnInjectJavascriptRequest;
            WebViewControlDelegate.OnActionAdded += OnActionAdded;

            var webView = new Android.Webkit.WebView(Forms.Context);

            webView.SetWebViewClient((WebViewClient = new FormsWebViewClient(element, this)));
            webView.SetWebChromeClient((ChromeClient = new FormsWebViewChromeClient(this)));

            // Defaults
            webView.Settings.JavaScriptEnabled = true;

            OnControlChanging?.Invoke(this, element, webView);
            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, element, webView);
        }
        void SetupControl(FormsWebView element)
        {
            var webView = new Android.Webkit.WebView(Forms.Context);

            webView.SetWebViewClient(WebViewClient  = new FormsWebViewClient(element, this));
            webView.SetWebChromeClient(ChromeClient = new FormsWebViewChromeClient(this));

            // https://github.com/SKLn-Rad/Xam.Plugin.Webview/issues/11
            webView.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);

            // Defaults
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.DomStorageEnabled = true;

            OnControlChanging?.Invoke(this, element, webView);
            SetNativeControl(webView);
            OnControlChanged?.Invoke(this, element, webView);
        }
        void SetupControl()
        {
            _navigationDelegate = new FormsNavigationDelegate(this);
            _contentController  = new WKUserContentController();
            _contentController.AddScriptMessageHandler(this, "invokeAction");
            _configuration = new WKWebViewConfiguration
            {
                UserContentController = _contentController
            };

            var wkWebView = new WKWebView(Frame, _configuration)
            {
                UIDelegate         = this,
                NavigationDelegate = _navigationDelegate
            };

            FormsWebView.CallbackAdded += OnCallbackAdded;

            SetNativeControl(wkWebView);
            OnControlChanged?.Invoke(this, wkWebView);
        }
Beispiel #17
0
        private void SetupControl()
        {
            _navigationDelegate = new HybridWebViewNavigationDelegate(this);
            _contentController  = new WKUserContentController();
            _contentController.AddScriptMessageHandler(this, "invokeAction");

            _contentController.AddUserScript(new WKUserScript(
                                                 (NSString)HybridWebViewControl.InjectedFunction,
                                                 WKUserScriptInjectionTime.AtDocumentStart,
                                                 true));

            if (!string.IsNullOrEmpty(Element.InjectScript))
            {
                _contentController.AddUserScript(new WKUserScript(
                                                     (NSString)Element.InjectScript,
                                                     WKUserScriptInjectionTime.AtDocumentStart,
                                                     true));
            }

            _configuration = new WKWebViewConfiguration
            {
                UserContentController     = _contentController,
                AllowsInlineMediaPlayback = true
            };

            var wkWebView = new WKWebView(Frame, _configuration)
            {
                Opaque             = false,
                UIDelegate         = this,
                NavigationDelegate = _navigationDelegate,
            };

            HybridWebViewControl.CallbackAdded += OnCallbackAdded;

            SetNativeControl(wkWebView);
            SetUserAgent();
            OnControlChanged?.Invoke(this, wkWebView);
        }
Beispiel #18
0
        public void Write(ushort address, byte value)
        {
            if (value != Memory[address])
            {
                switch (address)
                {
                case CONTROL_ADDR:
                    value           = HandleClearScreen(value);
                    Memory[address] = value;
                    OnControlChanged?.Invoke(this, value);
                    break;

                case MODE_ADDR:
                    Memory[address] = value;
                    OnModeChanged?.Invoke(this, value);
                    break;

                default:     // Cursor
                    Memory[address] = value;
                    OnCursorMoved?.Invoke(this, new CursorPosition(Memory[CURSOR_X_ADDR], Memory[CURSOR_Y_ADDR]));
                    break;
                }
            }
        }