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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; } } }