public Xamarin.Forms.View CreateWebView() { var preferences = new WKPreferences() { JavaScriptEnabled = true, JavaScriptCanOpenWindowsAutomatically = false }; var configuration = new WKWebViewConfiguration() { UserContentController = userContentController = new WKUserContentController() }; var helper = new Ao3TrackHelper(this); var messageHandler = new Ao3TrackReader.iOS.ScriptMessageHandler(helper); userContentController.AddScriptMessageHandler((WKScriptMessageHandler)messageHandler, "ao3track"); this.helper = helper; configuration.Preferences = preferences; webView = new WKWebView(configuration) { NavigationDelegate = new NavigationDelegate(this) }; webView.FocuseChanged += WebView_FocusChange; var xview = webView.ToView(); xview.SizeChanged += Xview_SizeChanged; return(xview); }
public void WireWebView <T>(T webView) { // Having issues with getting the correct type to match even though passing in WKWebView from client //_webView = webView as WKWebView; _layout = webView as UIView; var preferences = new WKPreferences(); preferences.JavaScriptEnabled = true; _configuration = new WKWebViewConfiguration(); _configuration.Preferences = preferences; _webViewClient = new TrestleNavigationDelegate(); _webView = new WKWebView(_layout.Frame, _configuration); _webView.TranslatesAutoresizingMaskIntoConstraints = false; _webView.NavigationDelegate = _webViewClient; _layout.AddSubview(_webView); NSLayoutConstraint.Create(_webView, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, _layout, NSLayoutAttribute.CenterX, 1f, 0f).Active = true; NSLayoutConstraint.Create(_webView, NSLayoutAttribute.CenterY, NSLayoutRelation.Equal, _layout, NSLayoutAttribute.CenterY, 1f, 0f).Active = true; _webView.SetNeedsDisplay(); }
public void TextInteractionEnabledTest() { TestRuntime.AssertXcodeVersion(13, 1); using var preferences = new WKPreferences(); // ignore the OS version, the property should always work Assert.DoesNotThrow(() => preferences.TextInteractionEnabled = true, "Getter"); Assert.DoesNotThrow(() => { var enabled = preferences.TextInteractionEnabled; }, "Setter"); }
private void CreateWebView(UIView newsuper) { _userController = new WKUserContentController(); _userController.AddScriptMessageHandler(this, "jsBridge"); var preferences = new WKPreferences { JavaScriptEnabled = true }; var configuration = new WKWebViewConfiguration { UserContentController = _userController, Preferences = preferences, }; _baseWebView = new WKWebView(newsuper.Frame, configuration); _baseWebView.Hidden = true; _baseWebView.NavigationDelegate = new CustomNavigationDelegate(this); }