// ReSharper disable once UnusedParameter.Local private static void Main(string[] args) { Console.WriteLine("Sample showing stonehenge on Chromely"); // stonehenge backend var options = new StonehengeHostOptions { Title = "Demo" }; var provider = StonehengeResourceLoader .CreateDefaultLoader(new VueResourceProvider()); var host = new KestrelHost(provider, options); if (!host.Start(options.Title, false, "localhost", 8888)) { Console.WriteLine("Failed to start stonehenge server"); } // ensure CEF runtime files are present var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) ?? "."; Directory.SetCurrentDirectory(path); try { CefRuntime.Load(); } catch (Exception ex) { Console.WriteLine("Failed to load runtime: " + ex.Message); Console.WriteLine("Installing CEF runtime from " + CefLoader.CefBuildsDownloadUrl); CefLoader.Load(); } // chromely frontend var startUrl = host.BaseUrl; var config = ChromelyConfiguration .Create() .WithHostMode(WindowState.Normal, true) .WithHostTitle(options.Title) //.WithHostIconFile("chromely.ico") .WithAppArgs(args) .WithHostSize(1000, 600) .WithStartUrl(startUrl); using (var window = new CefGlueBrowserWindow(config)) { var exitCode = window.Run(args); if (exitCode != 0) { Console.WriteLine("Failed to start chromely frontend: code " + exitCode); } } Console.WriteLine("Demo done."); }
static int Main(string[] args) { try { HostHelpers.SetupDefaultExceptionHandlers(); var appDirectory = AppDomain.CurrentDomain.BaseDirectory; /* * Start url (load html) options: */ // Options 1 - real standard urls // var startUrl = "https://google.com"; // Options 2 - using local resource file handling with default/custom local scheme handler // Requires - (sample) UseDefaultResourceSchemeHandler("local", string.Empty) // or register new resource scheme handler - RegisterSchemeHandler("local", string.Empty, new CustomResourceHandler()) var startUrl = "local://app/chromely.html"; // Options 3 - using file protocol - using default/custom scheme handler for Ajax/Http requests // Requires - (sample) UseDefaultResourceSchemeHandler("local", string.Empty) // or register new resource handler - RegisterSchemeHandler("local", string.Empty, new CustomResourceHandler()) // Requires - (sample) UseDefaultHttpSchemeHandler("http", "chromely.com") // or register new http scheme handler - RegisterSchemeHandler("http", "test.com", new CustomHttpHandler()) // var startUrl = $"file:///{appDirectory}app/chromely.html"; var config = ChromelyConfiguration .Create() .WithHostMode(WindowState.Normal) .WithHostTitle("chromely") .WithHostIconFile("chromely.ico") .WithAppArgs(args) .WithHostSize(1200, 700) .WithLogFile("logs\\chromely.cef_new.log") .WithStartUrl(startUrl) .WithLogSeverity(LogSeverity.Info) .UseDefaultLogger("logs\\chromely_new.log") .UseDefaultResourceSchemeHandler("local", string.Empty) .UseDefaultHttpSchemeHandler("http", "chromely.com") // The single process should only be used for debugging purpose. // For production, this should not be needed when the app is published and an cefglue_winapi_netcoredemo.exe // is created. // Alternate approach for multi-process, is to add a subprocess application // .WithCustomSetting(CefSettingKeys.BrowserSubprocessPath, full_path_to_subprocess) .WithCustomSetting(CefSettingKeys.SingleProcess, true); using (var window = new CefGlueBrowserWindow(config)) { // Register external url schemes window.RegisterUrlScheme(new UrlScheme("https://github.com/chromelyapps/Chromely", true)); /* * Register service assemblies * Uncomment relevant part to register assemblies */ // 1. Register current/local assembly: window.RegisterServiceAssembly(Assembly.GetExecutingAssembly()); // 2. Register external assembly with file name: var externalAssemblyFile = System.IO.Path.Combine(appDirectory, "Chromely.Service.Demo.dll"); window.RegisterServiceAssembly(externalAssemblyFile); // 3. Register external assemblies with list of filenames: // string serviceAssemblyFile1 = @"C:\ChromelyDlls\Chromely.Service.Demo.dll"; // List<string> filenames = new List<string>(); // filenames.Add(serviceAssemblyFile1); // app.RegisterServiceAssemblies(filenames); // 4. Register external assemblies directory: // var serviceAssembliesFolder = @"C:\ChromelyDlls"; // window.RegisterServiceAssemblies(serviceAssembliesFolder); // Scan assemblies for Controller routes window.ScanAssemblies(); return(window.Run(args)); } } catch (Exception exception) { Log.Error(exception); } return(0); }
static int Main(string[] args) { try { HostHelpers.SetupDefaultExceptionHandlers(); var appDirectory = AppDomain.CurrentDomain.BaseDirectory; /* * Start url (load html) options: */ // Options 1 - real standard urls // var startUrl = "https://google.com"; // Options 2 - using local resource file handling with default/custom local scheme handler // Requires - (sample) UseDefaultResourceSchemeHandler("local", string.Empty) // or register new resource scheme handler - RegisterSchemeHandler("local", string.Empty, new CustomResourceHandler()) var startUrl = "local://app/chromely.html"; // Options 3 - using file protocol - using default/custom scheme handler for Ajax/Http requests // Requires - (sample) UseDefaultResourceSchemeHandler("local", string.Empty) // or register new resource handler - RegisterSchemeHandler("local", string.Empty, new CustomResourceHandler()) // Requires - (sample) UseDefaultHttpSchemeHandler("http", "chromely.com") // or register new http scheme handler - RegisterSchemeHandler("http", "test.com", new CustomHttpHandler()) // var startUrl = $"file:///{appDirectory}app/chromely.html"; var config = ChromelyConfiguration .Create() .WithHostMode(WindowState.Normal) .WithHostTitle("chromely") .WithHostIconFile("chromely.ico") .WithAppArgs(args) .WithHostSize(1200, 700) .WithAppArgs(args) .WithHostSize(1200, 700) // .WithLogFile("logs\\chromely.cef_new.log") .WithStartUrl(startUrl) .WithLogSeverity(LogSeverity.Info) // .UseDefaultLogger("logs\\chromely_new.log") .UseDefaultResourceSchemeHandler("local", string.Empty) .UseDefaultHttpSchemeHandler("http", "chromely.com"); // .UseDefaultWebsocketHandler(string.Empty, 8181, true); using (var window = new CefGlueBrowserWindow(config)) { // Register external url schems window.RegisterUrlScheme(new UrlScheme("https://github.com/mattkol/Chromely", true)); /* * Register service assemblies * Uncomment relevant part to register assemblies */ // 1. Register current/local assembly: window.RegisterServiceAssembly(Assembly.GetExecutingAssembly()); // 2. Register external assembly with file name: var externalAssemblyFile = System.IO.Path.Combine(appDirectory, "Chromely.Service.Demo.dll"); window.RegisterServiceAssembly(externalAssemblyFile); // 3. Register external assemblies with list of filenames: // string serviceAssemblyFile1 = @"C:\ChromelyDlls\Chromely.Service.Demo.dll"; // List<string> filenames = new List<string>(); // filenames.Add(serviceAssemblyFile1); // app.RegisterServiceAssemblies(filenames); // 4. Register external assemblies directory: // var serviceAssembliesFolder = @"C:\ChromelyDlls"; // window.RegisterServiceAssemblies(serviceAssembliesFolder); // Scan assemblies for Controller routes window.ScanAssemblies(); return(window.Run(args)); } } catch (Exception exception) { Log.Error(exception); } return(0); }
static int Main(string[] args) { try { HostHelpers.SetupDefaultExceptionHandlers(); string startUrl = "local://dist/index.html"; ChromelyConfiguration config = ChromelyConfiguration .Create() .WithAppArgs(args) .WithHostSize(1200, 900) .WithHostMode(WindowState.Normal, true) .WithHostTitle("chromely") .WithHostIconFile("chromely.ico") .WithStartUrl(startUrl) .WithLogFile("logs\\chromely.cef_new.log") .WithLogSeverity(LogSeverity.Info) .UseDefaultLogger("logs\\chromely_new.log") .UseDefaultResourceSchemeHandler("local", string.Empty) .UseDefaultHttpSchemeHandler("http", "chromely.com"); using (var window = new CefGlueBrowserWindow(config)) { // Register external url schems window.RegisterUrlScheme(new UrlScheme("https://github.com/mattkol/Chromely", true)); // window.RegisterUrlScheme(new UrlScheme("https://google.com", true)); /* * Register service assemblies * Uncomment relevant part to register assemblies */ // 1. Register current/local assembly: window.RegisterServiceAssembly(Assembly.GetExecutingAssembly()); // 2. Register external assembly with file name: // string serviceAssemblyFile = @"C:\ChromelyDlls\Chromely.Service.Demo.dll"; // window.RegisterServiceAssembly(serviceAssemblyFile); // 3. Register external assemblies with list of filenames: // string serviceAssemblyFile1 = @"C:\ChromelyDlls\Chromely.Service.Demo.dll"; // List<string> filenames = new List<string>(); // filenames.Add(serviceAssemblyFile1); // window.RegisterServiceAssemblies(filenames); // 4. Register external assemblies directory: // string serviceAssembliesFolder = @"C:\ChromelyDlls"; // window.RegisterServiceAssemblies(serviceAssembliesFolder); // Scan assemblies for Controller routes window.ScanAssemblies(); return(window.Run(args)); } } catch (Exception exception) { Log.Error(exception); } return(0); }