Как показать экран-заставку во время запуска приложения Какао?

Похоже, я решил эту проблему, добавив в nuxt.config.js:

workbox: {
  cachingExtensions: '@/plugins/wb-ext.js'
}

Тогда мой wb-ext.js содержит:

workbox.routing.registerRoute(new RegExp('/_nuxt/.*'), 
workbox.strategies.staleWhileRevalidate({
  plugins: [
    new workbox.broadcastUpdate.Plugin('new-update-channel')
  ]
}), 'GET')

Это добавляет Код wb-ext над автоматически сгенерированной стратегией cacheFirst, созданной Nuxt Workbox в файле sw.js.

Теперь во время Dev я получаю сообщение о том, что Workbox использует StaleWhileRevalidate в консоли Dev, и плагин широковещательного обновления работает, как и ожидалось.

Не стесняйтесь комментировать, если у вас есть более чистый способ достижения этого без конфликтующих стратегий в файле sw.js.

Спасибо!

7
задан Bill the Lizard 25 November 2011 в 01:07
поделиться

3 ответа

Хотя ответ Peter в конечном счете корректен (необходимо переписать приложение для запуска быстрее), иногда это не практическая опция. Например, загрузка кода позже в приложении может занять слишком много времени (например, приложение сбора данных), вынудив это быть загруженной при запуске. Если Вы решаете, что хотите показать экран-заставку, самый легкий путь состоит в том, чтобы показать его в делегате приложения applicationWillFinishLaunching: метод. Создайте окно всплеска в своих приложениях MainMenu.nib и добавьте торговую точку к своему делегату приложения, ссылающемуся на то окно. Можно затем поместить окно на экране в applicationWillFinishLaunching: и скройте его в applicationDidFinishLaunching:. Обратите внимание, что NSRunLoop основного потока не выполняет итерации в это время, поэтому если Вы захотите обновить экран-заставку (с состоянием, индикатором выполнения или таким), то необходимо будет управлять теми событиями перерисовки сами.

Снова, думайте очень трудно о том, необходим ли долгий запуск. Если это, показывая, что экран-заставка с progess индикатором является минимумом, который Вы должны Вашим пользователям.

11
ответ дан 6 December 2019 в 11:53
поделиться

Почему Вы ненавидите своих пользователей?

Серьезно, не делайте этого. Не заставляйте своих пользователей ожидать для использования приложения. Заставьте свое приложение запуститься быстро вместо этого.

(И на всякий случай Вы настаиваете на ответе: Покажите окно с изображением в нем, затем скройте окно, когда Вы чувствуете, что пользователь достаточно долго ждал.)

6
ответ дан 6 December 2019 в 11:53
поделиться

Просто поднимите окно с изображением и закройте его, когда Вы будете сделаны с Вашей инициализацией запуска.

0
ответ дан 6 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: