示例#1
0
        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);
        }
示例#2
0
        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();
        }
示例#3
0
 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);
        }