Yarpda
-
Постов
176 -
Зарегистрирован
-
Посещение
-
Победитель дней
8
Сообщения, опубликованные Yarpda
-
-
Ребята помогите кто чем может. Все что на форуме (и не только) уже перепробовал, но поменять userAgent в XE11 под андроид для компонента TWebBrowser никак не выходит.
Хоть дайте направление куда точно стоит копать. Может быть как-то через JS это можно сделать (хотя сомневаюсь конечно, но мало ли). А поменять очень надо, один сайт не желает работать со стандартным значением UserAgent, меняешь на другой - все Ок. Вроде бы элементарщина, но уже 3 дня потратил, все в пустую...
-
18 часов назад, fredhack сказал:
Доброго времени суток уважаемые жители форума! Подскажите пожалуйста как обойти такую проблему?
В общем для того что бы опубликовать выпуск нужно сделать 32 и 64 битное приложение. При попытке опубликовать 32 и 64 битное приложение под одним Version Code пишет APK с такой версией уже существует. Если е я в каком то из приложений ставлю версию на 1 больше он мне пишет что APK версией ниже не будет виден пользователям.
Что это за прикол и как с ним бороться? Version Code ставлю 15
Обе версии и 32 и 64 бит должны быть в одном пакете apk или aab. Если версия делфи 10.4.2, то можно попробовать попробовать бангл создать, но сам я не проверял, работает ли он сейчас. В версиях раньше, это работало плохо (версия 32 бит, все равно не запускалась на некоторых устройствах). Можно еще вручную добавить 32 битный so файл в 64 apk. Подробнее об этом написано здесь:
И ниже пост, чуть попроще но суть та же самая.
-
В попытке работы с календарем, придумал хитрый способ. Создавать ics файл (Он представляет из себя просто набор параметров текстом). Если Ics файл открыть через проводник и выбрать календарь, то событие создается. Происходит то что мне надо, но если я его сохраняю из своей программы файл из мемо по пути TPath.GetDocumentsPath и пытаюсь его открыть вот так:
Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.setDataAndType(StrToJURI('content://' + TPath.Combine(TPath.GetDocumentsPath, 'test.ics')), StringToJString('text/calendar')); SharedActivity.startActivity(Intent);
приложение выводит меню "открыть с помощью". Если я выбираю календарь то выводится сообщение "Не удалось запустить мероприятие". Если выбираю Text viewer, то открывается редактор с "Unable to load file". Т.е. файл есть, но у интента как будто бы нет к нему доступа.
Сам новичок в работе с файлами, поэтом прошу, подскажите пожалуйста, что я делаю не так? Заранее спасибо.
Delphi 10.4.2 пробую на Adroid 11;
-
15 часов назад, krapotkin сказал:
дык я ж с самого начала сказал про chromium? ))
Просто в начале у меня была надежда, что удастся это реализовать на стандартных компонентах, поэтому сразу не стал проверять. А когда уже убедился, что это нормально сделать на стандартных почти не реально (если не вносить изменения в код страницы и не писать 1000 строк кода), то я уже стал смотреть в сторону других предложений. В любом случае тоже спасибо! ))
-
16 часов назад, qz5 сказал:
Есть еще вариант использовать CEF4Delphi - https://github.com/salvadordf/CEF4Delphi
Спасибо огромное!!! То, что нужно. Там даже пример есть готового проекта KioskOSRBrowser. Там все, что нужно было! ))
-
54 минут назад, krapotkin сказал:
хм. а ведь в каждом браузере есть встроенный режим "смартфон" в панели разработчика
Я даже этого не знал. Но вот реализовано это именно в TWebBrowser, чтобы его можно было встроить в свою оболочку, или может быть какой-то альтернативный браузер есть с таким функционалом?
-
Добрый день всем!
Стоит задача сделать информационный киоск (управлений только через тачскрин) под управлением Windows. Фактически нужно на экран вывести сайт компании, но проблема в том что управление должно быть таким же как в мобильных устройствах.
Т.е. реакция на касание как Pan (прокрутка). Если же собирать проект под винду, то при нажатии на экран и движении пальца прокрутка страницы в браузере не происходит, а происходит выделение текста на станице, а нужно максимально сделать как на мобильных платформах. Посмотрел настройки TWebBrowser и на VCL и на FMX, но ничего похоже не нашел, чтобы позволило так сделать. Если у кого-то была такая практика, или хотя бы знаете как это можно реализовать (желательно наиболее просто), прошу подсказки.
-
Всем доброго времени!
Такая проблема. Один удаленный клиент жалуется, что при попытке вызвать на любой форме компонент TTimeEdit, приложение крашится ничего не говоря. Ни у меня ни у знакомых ни на одном устройстве такого нет. Выбор времени нормально работает. А он прислал видео, что сразу вылетает. Никаких логов добыть не получается. Говорит, что у него стандартная прошивка 9 андроид. Телефон Meizu. В чем теоретически может быть дело, SDK, NDK? Куда копать даже не знаю.
Не встречался кто-нибудь с такой или подобной проблемой?
Заранее спасибо.
-
10 часов назад, pic service сказал:
Делаю программу-сканер. Открывается видео с камерой и идет поиск и распознавание требуемого шаблона на изображении.
Использую TCameraComponent, но он довольно медленный (+ у меня идёт работа с OpenCV и всё довольно уныло выглядит).
Понимаю, что с нативным компонентом камеры должно быть пошустрее?
В сети нашел класс, расширяющий TextureView... (набор компонентов Kastri)
Вообще, может кто подскажет куда копать, что делать в этом направлении?
Благодарности)
Во здесь неплохо сделано превью с камеры: https://github.com/Spelt/ZXing.Delphi
В разы быстрее чем с TCameraComponent (у меня до 30 fps доходит в зависимости от разрешения).
Тут конечно речь идет про распознавании штрих-кодов, но в целом там идет обработка битмэпа, поэтому можно заставить находить любой шаблон, если знать как работать графикой.
У меня к сожалению обработка графики совсем на начальном уровне. Хотел заставить разбирать простые буквенные сроки (инвентарный номер), но как это сделать не смог нигде найти. Но как сканер штрих-кодов - работает великолепно.
P.S. Если есть у кого-то примеры распознавания с битмэпа строки печатных букв и цифр, прошу кинуть ссылкой в ЛС, или здесь (если это не будет считаться офтопом).
-
10 часов назад, RADStudioDeveloper сказал:
Добавить через Add... - не работает - только один файл!
Не знаю как раньше но в 10.4.1. прекрасно работает добавление через add нескольких элементов, выделяя их с контролом.
-
8 часов назад, MAD_EVAL сказал:
Альтернатив много, это факт, в этом списке даже далеко не все, вот только они не имеют и 1% рынка, и смысла от них ровно ноль. Проходил это всё с 2016 по 2019, ввиду вечного бана в гугле.
Хоть и офтоп, но за что можно "заслужить" вечный бан от гугла? (чтобы знать заранее).
-
Заметил что ссылка на уроки по стилям FMX уже не доступна. Как я понял Ярослав не планирует больше продавать эти уроки, т.к. ушел в FGX Native, но по сути там довольно интересный материал (я их проходил в свое время и много раз использовал то, что узнал на них), и раз он уже не продается, может быть сделать доступ к этим урокам бесплатным? Я полагаю это могло бы популяризировать FMX. Там действительно без
бутылкивидео-уроков не разберешься -
6 минут назад, OnePeople сказал:
assets\internal - TPath.GetHomePath
Именно так, только всё это делать вы должны из вашего приложения, так как только оно имеет доступ к этой папке!
Хммм.. интересно. Попробую. Спасибо!
-
30 минут назад, OnePeople сказал:
Ну приложение имеет доступ к этой папке и может делать что хочешь с этим файлом, но только твое приложение, все легко реализуется!
Т.е. просто обращаемся по SheredDocument пути и там удаляем перезаписываем и вообще делаем что хотим, даже если это база SQLLite, я правильно понял?
-
Только что, krapotkin сказал:
ну, правильный вариант, это конечно, экспорт данных в скрипты, или просто в текст, или в JSON и отправка куда-то на сервер в сети
а потом импорт этих данных
для этого совершенно не требуется доступ к файлам в Assets
вариант с почтой очень экзотический ))
Да вот как раз и не хочется с этим возиться, если можно просто заменить файл БД и все готово (но вот можно ли).
-
Доброго дня уважаемые форумчане!
Есть одна задача, но я не совсем уверен, что так можно, прошу совета.
В общем есть приложение, в ней база данных SqlLite (файл базы данных деплоится в assets\internal\). Пользователь наполняет эту базу данных своими данными.
Необходимо сделать возможность экспортирования этих данных на внешний носитель и последующего импортирования уже на другом устройстве.
Вопрос, даст ли система экспортировать свой файл из assets\internal и главное импортировать его (т.е. фактически заменить существующий файл базы данных) в папке assets\internal на другом устройстве? (предполагается что root прав у пользователя нет).
Если да, то можно вкратце объяснить порядок действий (желательно с указанием запрашиваемых и статичных разрешений на это дело, путей обращения к файлам).
Если нет, то каким образом тогда это можно сделать (формировать промежуточный файл с данными БД, а потом его обрабатывать на другом устройстве средствами СУБД)?
P.S. Такая задача встала впервые, не очень разбираюсь в теме безопасности на Андроид устройствах и работе с файлами приложения напрямую, поэтому прошу помощи, может быть кто-то уже сталкивался с подобной задачей.
Заранее спасибо! )
-
1 час назад, Олег Киреев сказал:
Здравствуйте.
У меня она есть. Файл формата pdf 31 мегабайт. Я дополнил его повставлял закладки по главам для быстрого поиска. У меня впечатления самые лучшие. СпасиБО Всеволоду Леонову. Могу прислать на вашу личную почту.
С Уважением. Олег.
Да. Спасибо. отправил в личку.
-
10 часов назад, Android сказал:
Она вроде была написана в далеком 2015-м году
Не знаю. Эмб позиционирует ее как новую, даже не все главы еще типа выпущены, хотя кто знает конечно...
-
Доброго дня.
Недавно узнал, что вышла (еще не все главы, но все-же) бесплатная электронная книга на русском "Обучение мобильной разработке на Delphi", но никак не могу себя заставить скачать (нужно регистрироваться) и попробовать.
Но может быть кто-то уже скачал и ознакомился. Хотел узнать как впечатления?
Книга доступна по ссылке https://lp.embarcadero.com/DelphiBookInRussian?utm_source=Eloqua&utm_medium=email&utm_content=Learn-Delphi-eBook-200709
P.S. Смотрю тут тем про эту книгу нет, хотя она судя по оглавлению довольно интересная должна быть, тем более на русском и бесплатно. Может быть о ней кто-то не знал.
-
-
9 часов назад, Slym сказал:
hints: TDictionary<TDecodeHintType, TObject>; l: TList<TBarcodeFormat>; begin if not Assigned(FScanManager) then begin hints := TDictionary<TDecodeHintType, TObject>.Create(); l:=TList<TBarcodeFormat>.Create; l.Add(TBarcodeFormat.QR_CODE); hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l); FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints);
не тестил
Спасибо, работает!
-
Вопрос по ZXing. А можно ли как-то ограничить количество проверяемых форматов штрихкодов. Он в режиме auto не всегда стабильно работает. Мне нужно проверять всего 2 вида штрикода EAN13 и CODE_39, но как я понят там только или "Авто" или один конкретный формат можно указать, по крайней мере я не смог найти как туда подсунуть лист форматов.
Если кто решил эту проблему, подскажите пожалуйста.
-
13 часов назад, SergB сказал:
Ну и по традиции отвечаю опять я . Решил я эту проблему.
Я так и не разобрался, где происходит неполадка, либо при формировании aab делфой, либо при формировании установочных файлов при установке с гугла. НО, я поступил следующим образом.
1. Компилируем в делфе отдельно 32 и 64 apk
2. Открываем архиватором apk 64 и копируем из него папку arm64-v8a со всем содержимым куда-нибудь на диск
3. Копируем эту папку arm64-v8a в apk 32.
Итого получаем apk 32 содержащий либы для 32 и 64. (что и нужно гуглу). Но после этого наш файл не подписан. Можно подписать и с компа, но это тот еще геморрой. Я подписывал прямо на телефоне с помощью программы ZipSinger. Может есть и другие, но я делал с ней и все сработало.
После подписания загружаем наш гибридный apk в гугл и все работает без проблем .
Ну еще раз скажу, что эта проблема с формированием aab у меня возникла лишь когда я добавил в свое приложение сервис. Если нет сервиса то проблем с aab я не наблюдал.
Тоже заметил, что с aab есть проблемы. Иногда почему-то устанавливается 64 битная версия на 32 битный аппарат, соотвественно дальше сплеша на таких устройствах не идет. Если делать Apk с двумя версиями, то такой проблемы не наблюдается.
Но вышеописанное можно сделать гораздо проще. Надо в деплое 64 битной версии добавить файл so из 32 битной версии и помещаем его в папку library\lib\armeabi-v7a\ .
Для создания APK из двух версии. сначала компилируем 32 битную версию, потом 64 битную, но в Apk 64 битной версии уже попадет и 32 битная. И заморачиваться с отдельным подписанием не надо будет. Все сделает среда.
-
5 часов назад, Сергей Сергеев сказал:
пс. ПОМОГЛО! вместо ааб- апк сборный и андроид 6 заработал из магазина. Похоже дельфи бракованный ааб ( для Андроида 6 ) собирает..
Я тоже долго мучился и не понимал почему некоторые жалуются на то, что приложение не запускается на некоторых устройствах. Вот методом проб и ошибок пришел к такому варианту. Пусть он и корявый, но рабочий! ))
[ANDROID] Смена USER-AGENT компонента Webbrowser
в User Agent
Опубликовано
Публикую решение вопроса смены UserAgent под андроид (больше спасибо Ярославу!).
Оказалось все до боли просто, но сам бы я до этого никогда не дошел...
В общем. На форме лежит TWebBrowser с именем WB.
1. Добавляем в Uses Androidapi.Jni.Embarcadero, Androidapi.helpers;
2. На кнопку вешаем:
var NativeBrowser:JWebBrowser; begin if Supports(WB,JWebBrowser,NativeBrowser) then NativeBrowser.getSettings.setUserAgentString(stringToJString('MyUserAgent')); WebBrowser1.Navigate('https://www.whatsmyua.info'); // переходим на сайт, чтобы посмотреть что все получилось. end;
И это все! Жесть. 3 дня на это убил. Может быть кому-то пригодится.