static IPhoneServiceLocator() { typedServices["net"] = new IPhoneNet(); typedServices["system"] = new IPhoneSystem(); typedServices["file"] = new IPhoneFileSystem(); typedServices["db"] = new IPhoneDatabase(); typedServices["io"] = new IPhoneIO(); typedServices["notify"] = new IPhoneNotification(); typedServices["geo"] = new IPhoneGeo(); typedServices["media"] = new IPhoneMedia(); typedServices["message"] = new IPhoneMessaging(); typedServices["pim"] = new IPhonePIM(); typedServices["phone"] = new IPhoneTelephony(); typedServices["i18n"] = new IPhoneI18N(); typedServices["log"] = new IPhoneLog(); typedServices["security"] = new IPhoneSecurity(); typedServices["loader"] = new IPhoneAppLoader(); // include services from modules here // START_APPVERSE_MODULES_SERVICES // START_HERE_APPVERSE_MODULE_SERVICE // END_HERE_APPVERSE_MODULE_SERVICE // END_APPVERSE_MODULES_SERVICES // example: // typedServices["module.api.service.name"] = new module.ios.main.class(); }
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("/")); } }); }
static IPhoneServiceLocator() { typedServices["net"] = new IPhoneNet(); typedServices["system"] = new IPhoneSystem(); typedServices["file"] = new IPhoneFileSystem(); typedServices["db"] = new IPhoneDatabase(); typedServices["io"] = new IPhoneIO(); typedServices["notify"] = new IPhoneNotification(); typedServices["geo"] = new IPhoneGeo(); typedServices["media"] = new IPhoneMedia(); typedServices["message"] = new IPhoneMessaging(); typedServices["pim"] = new IPhonePIM(); typedServices["phone"] = new IPhoneTelephony(); typedServices["i18n"] = new IPhoneI18N(); typedServices["log"] = new IPhoneLog(); typedServices["analytics"] = new IPhoneAnalytics(); typedServices["security"] = new IPhoneSecurity(); typedServices["webtrekk"] = new IPhoneWebtrekk(); typedServices["loader"] = new IPhoneAppLoader(); }
private void OpenBrowserOnThread(object browserCommandObject) { BrowserCommand browserCommand = (BrowserCommand)browserCommandObject; UIApplication.SharedApplication.InvokeOnMainThread(delegate { IPhoneUIViewController contentController = new IPhoneUIViewController(browserCommand.Title, browserCommand.ButtonText); UIWebView webView = IPhoneNet.generateWebView(); contentController.AddInnerView(webView); IPhoneServiceLocator.CurrentDelegate.MainUIViewController().PresentModalViewController(contentController, true); IPhoneServiceLocator.CurrentDelegate.SetMainUIViewControllerAsTopController(false); if (!String.IsNullOrWhiteSpace(browserCommand.Url)) { NSUrl nsUrl = new NSUrl(browserCommand.Url); NSUrlRequest nsUrlRequest = new NSUrlRequest(nsUrl, NSUrlRequestCachePolicy.ReloadRevalidatingCacheData, 120.0); webView.LoadRequest(nsUrlRequest); } else if (!String.IsNullOrWhiteSpace(browserCommand.Html)) { webView.LoadHtmlString(browserCommand.Html, new NSUrl("/")); } }); }
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("/")); } }); }