Amazfit GTR 4 - Циферблаты | [Циферблаты]



Реп: (777)
Amazfit GTR 4 - Циферблаты
Изображение Amazfit GTR 4
Обсуждение » | Циферблаты » | Каталог циферблатов » | Watch Face Editor (ZeppOS) »

Прикрепленное изображение

Данная тема только для обсуждения циферблатов / просьб.
Публикация в каталоге


Инструкции
Полезное
Архив опросов
Прикрепленное изображение

Рекомендации для публикации постов с просьбами о переделках/адаптации
ˇУважаемые форумчане!
Убедительная просьба, при публикации сообщений с просьбами о переделках/адаптации циферблатов рекомендуется :
- прикрепляйте установочный файл, скриншот.
- указывайте с какой модели часов взят установочный файл.
- чёткое и конкретное описание просьбы.
- если указываете на пост с циферблатом, который содержит в себе несколько версий, то обязательно конкретно укажите интересующий Вас вариант.


По вопросам наполнения шапки обращайтесь в QMS к Модераторам раздела или через кнопку «Жалоба» под сообщениями, на которые необходимо добавить ссылки.

Сообщение отредактировал Кaтюшa - 01.12.24, 11:03
Причина редактирования: Всплывающее сообщение с таймаутом и расширенными настройками



Реп: (5)
* Avoska88, вот поэтому я и не обратился к Вам лично, но если сделаете, будет благодарность.



Реп: (1739)
Kera57 @ 09.09.24, 16:16 *
сделать чуточку удобнее

когда есть возможность, добавляю авто определение языка, конкретно этот на английском, потому что надо дни и месяцы рисовать по-новой, а времени мало, и второе, этот циферблат меня попросил сделать человек из-за границы, поэтому и английский. А вообще, мне удобнее на английском делать, на нём сокращать удобнее, названия короче, чем на русском. А то уже не раз было, пытаюсь перевести на русский, и потом вопросы, а это что, а что вот тут такое и т.д



Реп: (3595)
Kera57 @ 9.09.24, 16:16 *
почему сразу не переводят на русский язык

Все очень просто. Берется цифер с другой модели или OS. И подгоняются картинки под наш размер экрана. С этим может справится даже редактор циферблатов, а текст для перевода зачастую (98%) это png. В доноре английски, русского нет. И для перевода нужно обладать навыками работы в графических редакторах, а это могут не все.

Сообщение отредактировал sever5187 - 09.09.24, 17:03



Реп: (1739)
добавил русскую версию Amazfit GTR 4 - Каталог циферблатов (Пост Avoska88 #132202336)



Реп: (131)
* leXxiR,
а как делаете вызовы ? Т. е. Если надо из одной точки входа (из файла в page) вызвать другую (другой файл в page)?



Реп: (978)
sever5187 @ 9.09.24, 16:42 *
а текст для перевода зачастую (98%) это png
Это обычно месяцы. А разные надписи обычно на фон нанесены. И если фон не однородный то вряд-ли кто-то будет заморачиваться с переводом.



Реп: (3595)
SashaCX75 @ 9.09.24, 17:42 *
заморачиваться

Если мне нравится, а таких в последнее время очень мало, то меня ни что не остановит.
En, ru
Прикрепленное изображение
Прикрепленное изображение

Правда, т.к. в bin, то переделал вообще весь код.



Реп: (1739)
SashaCX75 @ 09.09.24, 17:42 *
И если фон не однородный то вряд-ли кто-то будет заморачиваться с переводом.

в точку.



Реп: (5)
* sever5187, но есть даже те, у кого и компьютера нет)



Реп: (3595)
Kera57 @ 9.09.24, 17:56 *
есть даже те

Ну, вот. Пеперь понятно почему сразу не переводят?



Реп: (953)
krawazog @ 09.09.24, 17:17 *
а как делаете вызовы ?

Если речь про приложения, то с помощью команды push (API 2.0) или replace.



Реп: (131)
Можете подсказать, как в приложении (не в циферблате) перехватить нажатие на коронку? Чтобы добавить свои действия. Ну, а дальше будет home(), чтобы выйти в циферблат.

Нужно именно поймать выход через коронку, а не через свайп.

Сообщение отредактировал krawazog - 09.09.24, 23:15



Реп: (978)
* krawazog,
Почитайте тут https://docs.zepp.com/…raction/onKey/#example
Только учтите что название кнопки может меняться в зависимости от того включен кнопочный режим или нет.



Реп: (1739)
загружаю циферблаты в магазин, и в один из них решил тапы добавить, и обнаружил, что теперь 2 архива в цфиерблате, посмотрел те, что ранее грузил, там один архив, поменяли что-то в структуре?



Реп: (131)
У меня предложение ко всем разработчикам (разумеется, к посетителям этого форума). Впрочем, обо всём по порядку.

Как раньше многие заметили, есть проблема при вызове пользовательских приложений из циферблатов. А именно - перестают работать "тап-зоны" (до тех пор, пока не сделан свайп туда-обратно, или пока не нажата коронка дважды и т. п.).
Попытки "красивого" решения этой проблемы до сих пор безуспешны. Да к тому же, та же проблема присутствует если вызывать приложение не из "тап-зоны", а стандартно, из списка приложений.

Подход к решению проблемы был найден - при выходе делать гашение экрана (в AOD, если включен, или в пустой экран, если не включен AOD). При этом, средствами циферблата это сделать не получилось. И хотелось бы гасить экран только тогда, когда это действительно необходимо.

Хочу предложить следующий подход. (проверил на небольшом приложении-макете)

В приложении в каталоге page помимо файла index.js создавать файл indexw.js именно для вызова из циферблата. При этом в приложении будут следующие изменения:

1. в app.json добавляем точку входа indexw:

...
"gt": {
"module": {
"page": {
"pages": ["page/index",
"page/indexw"]
}
},
...


2. файл app.js приобретает следующий вид (добавляем описание новой переменной):

let isWF; // признак вызова из приложения или циферблата

App({
globalData: {
},
onCreate(options) {
isWF = false;
console.log('app on create invoke')
},

onDestroy(options) {
console.log('app on destroy invoke')
}
})


3. Создаем файл page/indexw.js со следующим содержимым:

import { replace } from '@zos/router'

Page({
state: {
},
onInit() {
},
build() {
isWF = true;
replace({
url: 'page/index'
});
},
onDestroy() {
},
});


Новой переменной присваиваем "истина" и передаем управление page/index.js

4. в файле index.js добавляем обработку выхода из приложения, для чего добавляем эту обработку в Page.onDestroy():

onDestroy() {

if (isWF) {
setScreenOff();
isWH = false;
home(); // выход в циферблат
} else {
exit(); // выход в список приложений
};

logger.debug("page onDestroy invoked");
},

Проверяем, что был вызов из циферблата (через indexw), гасим признак вызова из циферблата, гасим экран, выходим в циферблат.

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

onKey({
callback: (key, keyEvent) => {

let vMode = getSystemMode();

if (!vMode.button) {

if (key === KEY_HOME && keyEvent === KEY_EVENT_PRESS) {
isWH = false;
setScreenOff();
home(); // выход в циферблат
};
};
},
});


Здесь ловим нажатие на кнопку, проверяем, не включен ли кнопочный режим (поскольку в кнопочном режиме из приложения непосредственно в циферблат не выходим, то этой проблемы нет). Проверяем, что нажато именно кратко на коронку, гасим признак вызова из циферблата, гасим экран, выходим в циферблат.

При этом, если включен AOD, получается красивый эффект. При выходе из приложения, на краткое время появляется циферблат, потом переходим в AOD. Если режим AOD не включен, то все работает, но такого красивого эффекта нет.

6. Вызов приложения из циферблата может иметь подобный вид (здесь на примере вызова календарь плюс, который я применил в новой версии своего циферблата)

const [fs_stat, err] = hmFS.stat_asset("../../../js_apps/00102281/page/indexw.js");

if (err == 0) {
hmApp.startApp({appid: 1057409, url: 'page/indexw' });
} else {
hmApp.startApp({appid: 1057409, url: 'page/index' });
};


Здесь проверяю наличие файла page/indexw.js, при его наличии вызываю его, при отсутствии, стандартно вызываю page/index

Просьба к разработчикам приложений добавлять такой код. пп 6 не обязателен, и без него, если вызывать стандартно через page/index функциональность никак не меняется. Просто появляется дополнительная , если вызвать через page/indexw

Сугубая просьба к SashaCX75 добавить все это в Календарь Плюс.



Реп: (978)
* krawazog,
А нужны ли разработчикам все эти дополнительные манипуляции?
Если я правильно понял то проблема заключается только в том что после выхода из приложения циферблат не обновляется пока не выключится экран. При этом стандартные виджеты времени работают нормально и секунды идут. Тоесть для большинства циферблатов этой проблемы нет. А там где она есть она решается простым свайпом вбок.

Для чего отменять действие стандартной кнопки не совсем понимаю. Переназначать кнопки это плохая практика. Кроме того нужно учитывать что в разных моделях названия кнопок отличаются и еще они зависят от включенного кнопочного режима.

Большого смысла проверять наличия файла indexw тоже не вижу. Мы ведь вызываем конкретное приложение и в нем этот файл изначально или есть или нет. Разве что как задел на будущее в надежде что автор добавит его. Кроме то в большинстве случаев файла indexw.js не будет, а будет indexw.bin. Я бы лучше проверял наличие файла app.json, чтобы убедиться что приложение существует.

Думаю такие вопросы лучше обсуждать в приложении ZeppOS, все таки это касается не только этой модели.

Добавлено 11.09.2024, 08:58:

* krawazog,
Я так понимаю вариант просто передавать параметры в основное окно и при наличии специального ключа просто при закрытии выключать экран проверяли и это не работает?



Реп: (35)
Всем привет! Люди добрые научите пожалуйста как устанавливать циферблаты которые выкладывают в соседней теме... я уже пытался ставить по инструкциям из шапки... один раз как-то поставился циферблат и больше не ставятся другие...



Реп: (953)
Takosan @ 11.09.24, 09:51 *
научите пожалуйста как

Amazfit GTR 4 - Циферблаты (Пост leXxiR #129163803)



Реп: (131)
SashaCX75 @ 11.09.24, 08:56 *
А нужны ли разработчикам все эти дополнительные манипуляции?

Это каждый разработчик сам решает, нужно или нет. Преимущество будет в том, что при запуске из "тап-зоны" не будет "отвала" интерактивных виджетов. Иначе поставит пользователь циферблат, и будет ругать "криворукого автора циферблата". Неприятно. А так, проблема решилась бы. Тем более, изменения в коде совсем небольшие.

SashaCX75 @ 11.09.24, 08:56 *
Для чего отменять действие стандартной кнопки не совсем понимаю. Переназначать кнопки это плохая практика.


Так оно не отменяется. Как был на коронке выход в циферблат, так и остался. Просто к этому добавилось гашение экрана в "некнопочном" режиме.

SashaCX75 @ 11.09.24, 08:56 *
Кроме то в большинстве случаев файла indexw.js не будет, а будет indexw.bin. Я бы лучше проверял наличие файла app.json, чтобы убедиться что приложение существует.


Тут, возможно, я ошибся. Но, опять же, когда разработчик создает циферблат и вешает на тап-зону приложение, он знает это приложение. И если не будет файла indexw.js, то произойдет вызов этого приложения стандартным способом. Тут я "вынес за скобки" проверку наличия приложения, т. к. речь шла не об этом. Разумеется, проверка наличия приложения должна быть. Но даже если его не будет, просто ничего не вызовется.
Но можно проверять и на наличие indexw.bin. Вместо или (лучше) дополнительно к indexw.js

SashaCX75 @ 11.09.24, 08:56 *
Думаю такие вопросы лучше обсуждать в приложении ZeppOS, все таки это касается не только этой модели.


Согласен. Напишу туда. Пусть даже это и будет "глас вопиющего в пустыне".

Сообщение отредактировал krawazog - 11.09.24, 11:08
Причина редактирования: Исправление опечатки



Реп: (978)
krawazog @ 11.09.24, 11:08 *
будет "отвала" интерактивных виджетов
Глубоко в эту тему не вникал, поэтому могу ошибаться. Вроде просто не определяется запуск циферблата и данные не обновляются. Все что было на экране до вызова приложения продолжает отображаться, но возможно статично. Есть какой-то минимальный пример кода чтобы понять в чем именно проблема?
* krawazog,
krawazog @ 11.09.24, 11:08 *
Просто к этому добавилось гашение экрана в "некнопочном" режиме.
А разве гашение экрана нужно не событие закрытия приложения добавлять onDestroy? Некоторые ведь выхрдят из приложения свайпом вправо, а не кнопкой.
krawazog @ 11.09.24, 11:08 *
Но можно проверять и на наличие indexw.bin
Я имел ввиду что ты и так знаешь есть ли жтот файл в прилодении или нет. Поэтому достаточно проверииь только наличии самого приложения на часах.


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 12.12.24, 07:07