コード例 #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            navBar       = new UIToolbar();
            navBar.Frame = new RectangleF(0, this.View.Frame.Height - 130, this.View.Frame.Width, 40);

            items = new UIBarButtonItem [] {
                new UIBarButtonItem("Back", UIBarButtonItemStyle.Bordered, (o, e) => { webView.GoBack(); }),
                new UIBarButtonItem("Forward", UIBarButtonItemStyle.Bordered, (o, e) => { webView.GoForward(); }),
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null),
                new UIBarButtonItem(UIBarButtonSystemItem.Refresh, (o, e) => { webView.Reload(); }),
                new UIBarButtonItem(UIBarButtonSystemItem.Stop, (o, e) => { webView.StopLoading(); })
            };
            navBar.Items = items;

            webView       = new UIWebView();
            webView.Frame = new RectangleF(0, 0, View.Frame.Width, View.Frame.Height - 130);

            webView.LoadStarted += delegate {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
            };
            webView.LoadFinished += delegate {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
            };

            webView.ScalesPageToFit = true;
            webView.SizeToFit();
            webView.LoadRequest(url);

            View.AddSubview(webView);
            View.AddSubview(navBar);
        }
コード例 #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            navBar           = new UIToolbar();
            navBar.Frame     = new CGRect(0, View.Frame.Height - 40, View.Frame.Width, 40);
            navBar.TintColor = UIColor.Gray;

            items = new [] {
                new UIBarButtonItem(UIBarButtonSystemItem.Stop, (o, e) => {
                    webView.StopLoading();
                    DismissViewController(true, null);
                }),
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null),
                new UIBarButtonItem(UIBarButtonSystemItem.Refresh, (o, e) => webView.Reload())
            };

            navBar.Items            = items;
            webView                 = new UIWebView();
            webView.Frame           = new CGRect(0, 0, View.Frame.Width, View.Frame.Height - 40);
            webView.ScalesPageToFit = true;
            webView.SizeToFit();
            webView.LoadRequest(url);

            navBar.AutoresizingMask  = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin;
            webView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;

            View.AddSubviews(new UIView[] { webView, navBar });
        }
コード例 #3
0
    void OnDestroy()
    {
        // load a blank page before removing it
        _webview.StopLoading();
        _webview.LoadHTMLString("", new NSURL(""));

        _webview.RemoveFromSuperview();
//		_webview.hidden = true;
        _webview = null;
        _request = null;
        _url     = null;
    }
コード例 #4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            //navigation bar
            NavigationItem.LeftBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (sender, e) =>
            {
                webView.StopLoading();
                this.redirectUrlCallback(null, true);
                this.DismissViewController(true, null);
            });

            var activityStyle = UIActivityIndicatorViewStyle.White;

            activity = new UIActivityIndicatorView(activityStyle);
            NavigationItem.RightBarButtonItem = new UIBarButtonItem(activity);

            //init webView
            webView = new UIWebView(this.View.Bounds);
            webView.AutoresizingMask = UIViewAutoresizing.All;
            this.View.AddSubview(webView);
            webView.ShouldStartLoad = (webView, request, navigationType) =>
            {
                string requestUrl = request.Url.AbsoluteString;
                if (redirectUrlValidator(requestUrl))
                {
                    ValidateRedirectUrl(requestUrl);
                    return(false);
                }
                else
                {
                    return(true);
                }
            };
            webView.LoadStarted += (sender, e) =>
            {
                activity.StartAnimating();
            };
            webView.LoadFinished += (sender, e) =>
            {
                activity.StopAnimating();
            };
            webView.LoadError += (sender, e) =>
            {
                activity.StopAnimating();
            };

            //load
            webView.LoadRequest(NSUrlRequest.FromUrl(NSUrl.FromString(url)));
        }
コード例 #5
0
ファイル: WebBrowser.iOS.cs プロジェクト: klenin/Citrus
 public override void Dispose()
 {
     if (activityIndicator != null)
     {
         if (isActivityIndicatorVisible)
         {
             activityIndicator.RemoveFromSuperview();
             isActivityIndicatorVisible = false;
         }
         activityIndicator.Dispose();
         activityIndicator = null;
     }
     if (webView != null)
     {
         webView.StopLoading();
         webView.Delegate = null;
         var localWebView = webView;
         Application.InvokeOnMainThread(() => {
             localWebView.RemoveFromSuperview();                     // RemoveFromSuperview must run in main thread only.
             localWebView.Dispose();
         });
         webView = null;
     }
 }
コード例 #6
0
        protected WebViewController()
        {
            var fixedSpace = new UIBarButtonItem(UIBarButtonSystemItem.FixedSpace, null)
            {
                Width = 26
            };
            var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null);

            toolbar = new UIToolbar();
            topBar  = new UIToolbar();

            title = new UILabel(new RectangleF(10, 0, 80, 30))
            {
                BackgroundColor           = UIColor.Clear,
                AdjustsFontSizeToFitWidth = true,
                Font            = UIFont.BoldSystemFontOfSize(22),
                MinimumFontSize = 14,
                TextColor       = UIColor.White,
                ShadowColor     = UIColor.FromRGB(64, 74, 87),
                ShadowOffset    = new SizeF(0, -1)
            };

            topBar.Items = new UIBarButtonItem []  {
                new UIBarButtonItem(title),
                flexibleSpace,
                new UIBarButtonItem(Locale.GetText("Close"), UIBarButtonItemStyle.Bordered, (o, e) => { DismissModalViewControllerAnimated(true); })
            };

            backButton    = new UIBarButtonItem(UIImage.FromBundle("Images/back.png"), UIBarButtonItemStyle.Plain, (o, e) => { WebView.GoBack(); });
            forwardButton = new UIBarButtonItem(UIImage.FromBundle("Images/forward.png"), UIBarButtonItemStyle.Plain, (o, e) => { WebView.GoForward(); });
            refreshButton = new UIBarButtonItem(UIBarButtonSystemItem.Refresh, (o, e) => { WebView.Reload(); });
            stopButton    = new UIBarButtonItem(UIBarButtonSystemItem.Stop, (o, e) => { WebView.StopLoading(); });

            toolbar.Items = new UIBarButtonItem [] { backButton, fixedSpace, forwardButton, flexibleSpace, stopButton, fixedSpace, refreshButton };

            View.AddSubview(topBar);
            View.AddSubview(toolbar);
        }
コード例 #7
0
		public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path)
		{
			int i = 0;
			var vc = new WebViewController (this) {
				Autorotate = dvc.Autorotate
			};

			web = new UIWebView (UIScreen.MainScreen.Bounds) {
				BackgroundColor = UIColor.White,
				ScalesPageToFit = true,
				AutoresizingMask = UIViewAutoresizing.All
			};
			web.LoadStarted += delegate {
				// this is called several times and only one UIActivityIndicatorView is needed
				if (i++ == 0) {
					var indicator = new UIActivityIndicatorView (UIActivityIndicatorViewStyle.White);
					vc.NavigationItem.RightBarButtonItem = new UIBarButtonItem (indicator);
					indicator.StartAnimating ();
				}
				NetworkActivity = true;
			};
			web.LoadFinished += delegate {
				if (--i == 0) {
					// we stopped loading, remove indicator and dispose of UIWebView
					vc.NavigationItem.RightBarButtonItem = null;
					web.StopLoading ();
					web.Dispose ();
				}
				NetworkActivity = false;
			};
			web.LoadError += (webview, args) => {
				NetworkActivity = false;
				vc.NavigationItem.RightBarButtonItem = null;
				if (web != null)
					web.LoadHtmlString (
						String.Format ("<html><center><font size=+5 color='red'>{0}:<br>{1}</font></center></html>",
						"An error occurred:".GetText (), args.Error.LocalizedDescription), null);
			};
			vc.NavigationItem.Title = Caption;
			
			vc.View.AutosizesSubviews = true;
			vc.View.AddSubview (web);
			
			dvc.ActivateController (vc);
			web.LoadRequest (NSUrlRequest.FromUrl (nsUrl));
		}
コード例 #8
0
 public override void ViewWillDisappear(bool animated)
 {
     web.StopLoading();
     web.Delegate = null;
     UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
 }
コード例 #9
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            navBar = new UIToolbar();
            if (AppDelegate.IsPhone)
            {
                navBar.Frame = new RectangleF(0, View.Frame.Height - 40, View.Frame.Width, 40);
            }
            else
            {
                navBar.Frame = new RectangleF(0, View.Frame.Height - 40, View.Frame.Width, 40);
            }
            navBar.TintColor = UIColor.DarkGray;

            items = new UIBarButtonItem [] {
                new UIBarButtonItem("Back", UIBarButtonItemStyle.Bordered, (o, e) => { webView.GoBack(); }),
                new UIBarButtonItem("Forward", UIBarButtonItemStyle.Bordered, (o, e) => { webView.GoForward(); }),
                new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, null),
                new UIBarButtonItem(UIBarButtonSystemItem.Refresh, (o, e) => { webView.Reload(); }),
                new UIBarButtonItem(UIBarButtonSystemItem.Stop, (o, e) => {
                    webView.StopLoading();

                    // Phone: NavigationController, Pad: Modal
                    if (NavigationController == null)
                    {
                        DismissViewController(true, () => {});
                    }
                    else
                    {
                        NavigationController.PopViewControllerAnimated(true);
                    }
                })
            };
            navBar.Items = items;

            webView = new UIWebView();
            if (AppDelegate.IsPhone)
            {
                webView.Frame = new RectangleF(0, 0, View.Frame.Width, View.Frame.Height - 40);
            }
            else
            {
                webView.Frame = new RectangleF(0, 0, View.Frame.Width, View.Frame.Height - 40);
            }

            webView.LoadStarted += delegate {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
                navBar.Items[0].Enabled = webView.CanGoBack;
                navBar.Items[1].Enabled = webView.CanGoForward;
            };
            webView.LoadFinished += delegate {
                UIApplication.SharedApplication.NetworkActivityIndicatorVisible = false;
                navBar.Items[0].Enabled = webView.CanGoBack;
                navBar.Items[1].Enabled = webView.CanGoForward;
            };

            webView.ScalesPageToFit = true;
            webView.SizeToFit();
            webView.LoadRequest(url);

            navBar.AutoresizingMask  = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin;
            webView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;

            View.AddSubview(webView);
            View.AddSubview(navBar);
        }