public override bool ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions) { if (browserOptions == null) { browserOptions = new SecondaryBrowserOptions(); } else { browserOptions.CheckNullsAndSetDefaults(); } browserOptions.Url = String.Empty; return(OpenBrowserWithOptions(browserOptions)); }
public override bool OpenBrowserWithOptions(SecondaryBrowserOptions browserOptions) { using (var pool = new NSAutoreleasePool()) { var thread = new Thread(OpenBrowserWithOptionsOnThread); if (browserOptions == null) { browserOptions = new SecondaryBrowserOptions(); } else { browserOptions.CheckNullsAndSetDefaults(); } thread.Start(browserOptions); } return(true); }
private void OpenBrowserWithOptionsOnThread(object browserOptionsObject) { SecondaryBrowserOptions browserOptions = (SecondaryBrowserOptions)browserOptionsObject; UIApplication.SharedApplication.InvokeOnMainThread(delegate { IPhoneUIViewController contentController = new IPhoneUIViewController(browserOptions.Title, browserOptions.CloseButtonText); UIWebView webView = IPhoneNet.generateWebView(); //IF NO EXTENSIONS ARE USED THEN PARSE THE URL FILE EXTENSION if (browserOptions.BrowserFileExtensions != null && browserOptions.BrowserFileExtensions.Length > 0) { webView.ShouldStartLoad = delegate(UIWebView view, NSUrlRequest req, UIWebViewNavigationType nav){ if (req != null && req.Url != null && req.Url.Path.LastIndexOf(".") != -1) { string sFileExtension = req.Url.Path.Substring(req.Url.Path.LastIndexOf(".")); if (browserOptions.BrowserFileExtensions.Contains(sFileExtension)) { //HANDLE URL LIKE SYSTEM DOES DownloadFile(req.Url.ToString()); //RETURN FALSE TO NOT LOAD THE URL ON OUR WEBVIEW return(false); } else { //LOAD URL return(true); } } return(true); }; } contentController.AddInnerView(webView); IPhoneServiceLocator.CurrentDelegate.MainUIViewController().PresentModalViewController(contentController, true); IPhoneServiceLocator.CurrentDelegate.SetMainUIViewControllerAsTopController(false); if (!String.IsNullOrWhiteSpace(browserOptions.Url)) { NSUrl nsUrl = new NSUrl(browserOptions.Url); NSUrlRequest nsUrlRequest = new NSUrlRequest(nsUrl, NSUrlRequestCachePolicy.ReloadRevalidatingCacheData, 120.0); webView.LoadRequest(nsUrlRequest); } else if (!String.IsNullOrWhiteSpace(browserOptions.Html)) { webView.LoadHtmlString(browserOptions.Html, new NSUrl("/")); } }); }
public override async Task<bool> ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions) { try { await ShowHtml(String.Empty, String.Empty, browserOptions.Html); return true; } catch (Exception) { } return false; }
public override async Task<bool> OpenBrowserWithOptions(SecondaryBrowserOptions browserOptions) { try { return await OpenBrowser(browserOptions.Title, String.Empty, browserOptions.Url); } catch (Exception) { } return false; }
public override bool ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions) { throw new NotImplementedException(); }
public override bool OpenBrowserWithOptions(SecondaryBrowserOptions browserOptions) { using (var pool = new NSAutoreleasePool ()) { var thread = new Thread (OpenBrowserWithOptionsOnThread); if(browserOptions==null) browserOptions = new SecondaryBrowserOptions(); else browserOptions.CheckNullsAndSetDefaults(); thread.Start (browserOptions); } return true; }
public override bool ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions) { if(browserOptions==null) browserOptions = new SecondaryBrowserOptions(); else browserOptions.CheckNullsAndSetDefaults(); browserOptions.Url = String.Empty; return OpenBrowserWithOptions (browserOptions); }
private void OpenBrowserWithOptionsOnThread(object browserOptionsObject) { SecondaryBrowserOptions browserOptions = (SecondaryBrowserOptions)browserOptionsObject; UIApplication.SharedApplication.InvokeOnMainThread(delegate { IPhoneUIViewController contentController = new IPhoneUIViewController(browserOptions.Title, browserOptions.CloseButtonText); UIWebView webView = IPhoneNet.generateWebView(); //IF NO EXTENSIONS ARE USED THEN PARSE THE URL FILE EXTENSION if (browserOptions.BrowserFileExtensions != null && browserOptions.BrowserFileExtensions.Length > 0) { webView.ShouldStartLoad = delegate(UIWebView view, NSUrlRequest req, UIWebViewNavigationType nav){ SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - WebView ShouldStartLoad: " + req); if (req != null && req.Url != null && req.Url.Path != null && req.Url.Path.LastIndexOf(".") != -1) { SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - request path: " + req.Url.Path); string sFileExtensionPath = req.Url.Path.Substring(req.Url.Path.LastIndexOf(".")); if (browserOptions.BrowserFileExtensions.Contains(sFileExtensionPath)) { SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - WebView ShouldStartLoad: Handled by system (file extension matching by Path)"); //HANDLE URL LIKE SYSTEM DOES DownloadFile(Uri.UnescapeDataString(req.Url.ToString())); //RETURN FALSE TO NOT LOAD THE URL ON OUR WEBVIEW return(false); } } // extensions could also be received as Query parameters if (req != null && req.Url != null && req.Url.Query != null && req.Url.Query.LastIndexOf(".") != -1) { SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - request query: " + req.Url.Query); string sFileExtensionQuery = req.Url.Query.Substring(req.Url.Query.LastIndexOf(".")); if (browserOptions.BrowserFileExtensions.Contains(sFileExtensionQuery)) { //HANDLE URL LIKE SYSTEM DOES SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - WebView ShouldStartLoad: Handled by system (file extension matching by Query)"); DownloadFile(Uri.UnescapeDataString(req.Url.ToString())); //RETURN FALSE TO NOT LOAD THE URL ON OUR WEBVIEW return(false); } } SystemLogger.Log(SystemLogger.Module.PLATFORM, "OpenBrowserWithOptionsOnThread - WebView ShouldStartLoad: Loaded into WebView (not Path or Query match provided extensions)"); return(true); }; } contentController.AddInnerView(webView); IPhoneServiceLocator.CurrentDelegate.MainUIViewController().PresentModalViewController(contentController, true); IPhoneServiceLocator.CurrentDelegate.SetMainUIViewControllerAsTopController(false); if (!String.IsNullOrWhiteSpace(browserOptions.Url)) { NSUrl nsUrl = new NSUrl(browserOptions.Url); NSUrlRequest nsUrlRequest = new NSUrlRequest(nsUrl, NSUrlRequestCachePolicy.ReloadRevalidatingCacheData, 120.0); webView.LoadRequest(nsUrlRequest); } else if (!String.IsNullOrWhiteSpace(browserOptions.Html)) { webView.LoadHtmlString(browserOptions.Html, new NSUrl("/")); } }); }
public abstract Task<bool> ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions);
public abstract Task<bool> OpenBrowserWithOptions(SecondaryBrowserOptions browserOptions);
public abstract bool ShowHtmlWithOptions(SecondaryBrowserOptions browserOptions);
public abstract bool OpenBrowserWithOptions(SecondaryBrowserOptions browserOptions);