Мигает/мигает с помощью JQM и PhoneGap на Android
Я использую PhoneGap 2.2.0 в сочетании с jQuery Mobile 1.2.0 для своего приложения на платформе Android (версия 2.3.3 и выше).
На страницах я использую фиксированные заголовки и вообще никаких переходов. Отдых в значительной степени стандартный jQuery.
Когда я перемещаюсь со страницы на страницу, я на короткое мгновение получаю белый мигание (целая страница). Я несколько раз искал в Интернете.
Не удалось выполнить попытку ниже:
Когда я выключаю аппаратное ускорение в проекте Android, мигание исчезнет. Но тогда некоторые стили CSS идут не так, и общая производительность очень плохая (очевидно).
Я также попробовал код ниже.
ui.page {
-webkit-transform: translateZ(0);
-webkit-perspective:1000;
-webkit-backface-visibility: hidden;
}
Плохо все равно не повезло.
Также попробовал это: https://github.com/watusi/jquery.mobile.simultaneous-transitions
Еще одна короткая (полная белая страница) мигает перед переходом.
Кажется, что это не имеет ничего общего с переменами анимации самой страницы, но что-то странное, что происходит сразу же после разгрузки старой страницы и перед загрузкой новой.
Обновление 25-04-2013:
Также попробовали: https://groups.google.com/forum/?fromgroups=#!topic/phonegap/EtZ2KwseKQ0 https://github.com/jquery/jquery-mobile/issues/4024 https://github.com/jquery/jquery-mobile/pull/4129
Единственное, что заставляет мигать, - удалить часть неподвижного голова. Тогда это так же гладко, как масло, но я пропускаю заголовки, совместимые с панелями.
Также попробовал шаблон 1 страницы (все страницы в одном файле). Не помогло.
jQuery Mobile 1.3.1
PhoneGap 2.5.0
Android 4+
Устройства:
- Google Samsung Galaxy Nexus
- Samsung Galaxy Tab 10.1 (возникла проблема, но у вас больше нет устройства)
- Samsung Galaxy Note 10.1
Теперь я представил вопрос о Github: https://github.com/jquery/jquery-mobile/issues/6031
Ответы
Ответ 1
Настройка видового экрана для пользователя-масштабируемого = не исправлена проблема для меня:
Измените
< meta name="viewport" content="width=device-width, initial-scale=1" />
к
< meta name="viewport" content="width=device-width, user-scalable=no" />
Ответ 2
Настройка видового экрана для пользователя-масштабируемого = не исправлена проблема для меня:
< meta name="viewport" content="width=device-width, user-scalable=no" />
Работает для
jQuery Mobile 1.3.1
Кордова 2.8.0
на Nexus 4/Android 4.2.2
Ответ 3
третья ссылка в вашем сообщении - это то, как я исправил ее некоторое время назад, когда у меня возникла эта проблема. Я также добавил -webkit-perspective: 1000; Мерцание происходит из-за 3D-ускорения, и обратная сторона страницы, которая преобразуется, становится видимой на долю секунды, делая ее похожей на мерцание.
Изменить: посмотрите на этот, а также для получения дополнительной информации.
Ответ 4
Убедитесь, что этот код существует в вашем методе mobileinit
:
//initialize jQM
$(document).on("mobileinit", function () {
//hack to fix android page transition flicking issue
if (navigator.userAgent.indexOf("Android") != -1){
$.extend( $.mobile , {
defaultPageTransition: 'none'
});
}
});
Также: измените следующее в jquerymobile.js
// Make our transition handler the public default.
$.mobile.defaultTransitionHandler = simultaneousHandler;
//transition handler dictionary for 3rd party transitions
$.mobile.transitionHandlers = {
"default": $.mobile.defaultTransitionHandler,
"sequential": sequentialHandler,
"simultaneous": simultaneousHandler
};
Также любезно сообщите мне, какую версию устройства для Android вы используете?
Ответ 5
Я пробовал десятки решений, но ни один из них не работал, создайте мне лучший способ для решения этой проблемы - установить свойство autohidesplashscreen на false, показать заставку на предыдущей странице и скрыть ее на целевой странице в deviceready. В некоторых переходах мы спали переходы примерно 0,5 - 1 сек, чтобы избежать мигания spalshscreen. Не лучшее решение, но работало для нас.