Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
В окне "Свойства элемента", есть много полезной информации, к которой хотелось бы получить доступ. (Если уже такой есть, подскажите, как с ним работать)
Нашел интерфейс public interface IAndroidElementAPI, куда они хорошо бы встали.
Да такое нашел, но это не совсем то, например через него нельзя получить атрибуты: center_x, center_y, width, height, index. Все это придется костылить и самому высчитывать, когда данные уже есть.
Еще было бы не плохо понять откуда эти атрибуты получаются, чтобы понимать, что я могу получить. Они точно берутся не из "Свойства элемента" и не из .DroidInstance.Hierarchy;
Хотя возможно и из .DroidInstance.Hierarchy; потому что все атрибуты парсятся, кроме index
Возможно, часть параметров не стали оформлять в API, чтобы не перегружать операции с элементами. Во всяком случае, судя по поведению в ZP, именно поэтому работа крайне сильно тормозилась в случаях, когда надо получать/проверять параметры сотен или тысяч элементов (т.е., возможно, поэтому для ZD было "облегчение", такое у меня предположение).
А так поддерживаю, набор свойств вроде есть, но довольно скудный и не совсем понятно, как те или иные вещи работают (а что-то как будто работает одним образом в одних приложениях, другим - в других). Но эти мысли тоже с поправкой на то, что я пока изучаю ZD и сравнительно недавно что-то пытаюсь с ним сделать.
Конкретно center_x, center_y, width, height, кстати, получаются из bounds, так что думаю в полноценных их свойствах смысла нет. Можно просто соорудить для себя пару методов расширения и использовать в тех случаях, когда они для чего-то нужны. Пример вычислений:
C#:
var matches = Regex.Matches(bounds, @"\[(\d+),(\d+)\]");
if (matches.Count == 2)
{
// Координаты "углов" элемента
int x1 = int.Parse(matches[0].Groups[1].Value);
int y1 = int.Parse(matches[0].Groups[2].Value);
int x2 = int.Parse(matches[1].Groups[1].Value);
int y2 = int.Parse(matches[1].Groups[2].Value);
// Ширина и высота
int width = x2 - x1;
int height = y2 - y1;
project.SendInfoToLog("width: " + width);
project.SendInfoToLog("height: " + height);
// Центры по x и y
int center_x = width / 2 + x1;
int center_y = height / 2 + y1;
project.SendInfoToLog("center_x: " + center_x);
project.SendInfoToLog("center_y: " + center_y);
}