Пример #1
0
        static void Main()
        {
            AppHost = new AppHost();
            SquirrelAwareApp.HandleEvents(
                OnInitialInstall,
                OnAppUpdate,
                onAppUninstall: OnAppUninstall,
                onFirstRun: OnFirstRun);

            Cef.EnableHighDPISupport();

            var cacheFolder = Path.Combine(Path.GetTempPath(), "gistlyn-cache");

            Cef.Initialize(new CefSettings {
                CachePath = cacheFolder //persist localStorage + Cookies
            });

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            AppHost.Init().Start("http://*:4000/");
            "ServiceStack SelfHost listening at {0} ".Fmt(HostUrl).Print();
            Form           = new FormMain();
            Form.Disposed += (sender, args) => AppUpdater.Dispose();
            Application.Run(Form);
        }
Пример #2
0
        public void Ready()
        {
            //Invoke on DOM ready
            var appSettings     = new AppSettings();
            var checkForUpdates = appSettings.Get <bool>("EnableAutoUpdate");

            if (!checkForUpdates)
            {
                return;
            }

            var releaseFolderUrl = appSettings.GetString("UpdateManagerUrl");

            try
            {
                var updatesAvailableTask = AppUpdater.CheckForUpdates(releaseFolderUrl);
                updatesAvailableTask.ContinueWith(isAvailable =>
                {
                    isAvailable.Wait(TimeSpan.FromMinutes(1));
                    bool updatesAvailable = isAvailable.Result;
                    //Only check once one launch then release UpdateManager.
                    if (!updatesAvailable)
                    {
                        AppUpdater.Dispose();
                        return;
                    }
                    if (formMain == null)
                    {
                        return;
                    }
                    // Notify web client updates are available.
                    formMain.InvokeOnUiThreadIfRequired(() =>
                    {
                        formMain.ChromiumBrowser.GetMainFrame().ExecuteJavaScriptAsync("window.updateAvailable();");
                    });
                });
            }
            catch (Exception e)
            {
                // Error reaching update server
            }
        }