Перейти к содержанию
Fire Monkey от А до Я

Yarpda

Пользователи
  • Постов

    176
  • Зарегистрирован

  • Посещение

  • Победитель дней

    8

Сообщения, опубликованные Yarpda

  1. Публикую решение вопроса смены 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 дня на это убил. Может быть кому-то пригодится.

  2. Ребята помогите кто чем может. Все что на форуме (и не только) уже перепробовал, но поменять userAgent в XE11 под андроид для компонента TWebBrowser никак не выходит.

    Хоть дайте направление куда точно стоит копать. Может быть как-то через JS это можно сделать (хотя сомневаюсь конечно, но мало ли). А поменять очень надо, один сайт не желает работать со стандартным значением UserAgent, меняешь на другой - все Ок. Вроде бы элементарщина, но уже 3 дня потратил, все в пустую...

  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. Подробнее об этом написано здесь:

    И ниже пост, чуть попроще но суть та же самая.

     

  4. В попытке работы с календарем, придумал хитрый способ. Создавать 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;

  5. 15 часов назад, krapotkin сказал:

    дык я ж с самого начала сказал про chromium? ))

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

  6. 16 часов назад, qz5 сказал:

    Есть еще вариант использовать CEF4Delphi - https://github.com/salvadordf/CEF4Delphi

    Спасибо огромное!!! То, что нужно. Там даже пример есть готового проекта KioskOSRBrowser. Там все, что нужно было! ))

  7. 54 минут назад, krapotkin сказал:

    хм. а ведь в каждом браузере есть встроенный режим "смартфон" в панели разработчика

    Я даже этого не знал. ;) Но вот реализовано это именно в TWebBrowser, чтобы его можно было встроить в свою оболочку, или может быть какой-то альтернативный браузер есть с таким функционалом?

  8. Добрый день всем!

    Стоит задача сделать информационный киоск (управлений только через тачскрин) под управлением Windows. Фактически нужно на экран вывести сайт компании, но проблема в том что управление должно быть таким же как в мобильных устройствах.

    Т.е. реакция на касание как Pan (прокрутка). Если же собирать проект под винду, то при нажатии на экран и движении пальца прокрутка страницы в браузере не происходит, а происходит выделение текста на станице, а нужно максимально сделать как на мобильных платформах. Посмотрел настройки TWebBrowser и на VCL и на FMX, но ничего похоже не нашел, чтобы позволило так сделать. Если у кого-то была такая практика, или хотя бы знаете как это можно реализовать (желательно наиболее просто), прошу подсказки.

  9. Всем доброго времени!

    Такая проблема. Один удаленный клиент жалуется, что при попытке вызвать на любой форме компонент TTimeEdit, приложение крашится ничего не говоря. Ни у меня ни у знакомых ни на одном устройстве такого нет. Выбор времени нормально работает. А он прислал видео, что сразу вылетает. Никаких логов добыть не получается. Говорит, что у него стандартная прошивка 9 андроид. Телефон Meizu. В чем теоретически может быть дело, SDK, NDK? Куда копать даже не знаю.

    Не встречался кто-нибудь с такой или подобной проблемой?

    Заранее спасибо.

  10. 10 часов назад, pic service сказал:

    Делаю программу-сканер. Открывается видео с камерой и идет поиск и распознавание требуемого шаблона на изображении.

    Использую TCameraComponent, но он довольно медленный (+ у меня идёт работа с OpenCV и всё довольно уныло выглядит).

    Понимаю, что с нативным компонентом камеры должно быть пошустрее?

    В сети нашел класс, расширяющий TextureView... (набор компонентов Kastri)

    Вообще, может кто подскажет куда копать, что делать в этом направлении?

    Благодарности)

    Во здесь неплохо сделано превью с камеры: https://github.com/Spelt/ZXing.Delphi

    В разы быстрее чем с TCameraComponent (у меня до 30 fps доходит в зависимости от разрешения).

    Тут конечно речь идет про распознавании штрих-кодов, но в целом там идет обработка битмэпа, поэтому можно заставить находить любой шаблон, если знать как работать графикой.

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

    P.S. Если есть у кого-то примеры распознавания с битмэпа строки печатных букв и цифр, прошу кинуть ссылкой в ЛС, или здесь (если это не будет считаться офтопом).  

  11. 10 часов назад, RADStudioDeveloper сказал:

    Добавить через Add... - не работает - только один файл!

    Не знаю как раньше но в 10.4.1. прекрасно работает добавление через add нескольких элементов,  выделяя их с контролом.

  12. 8 часов назад, MAD_EVAL сказал:

    Альтернатив много, это факт, в этом списке даже далеко не все, вот только они не имеют и 1% рынка, и смысла от них ровно ноль. Проходил это всё с 2016 по 2019, ввиду вечного бана в гугле.

    Хоть и офтоп, но за что можно "заслужить" вечный бан от гугла? (чтобы знать заранее).

  13. Заметил что ссылка на уроки по стилям FMX уже не доступна. Как я понял Ярослав не планирует больше продавать эти уроки, т.к. ушел в FGX Native, но по сути там довольно интересный материал (я их проходил в свое время и много раз использовал то, что узнал на них), и раз он уже не продается, может быть сделать доступ к этим урокам бесплатным? Я полагаю это могло бы популяризировать FMX. Там действительно без бутылки видео-уроков не разберешься ;)

  14. 6 минут назад, OnePeople сказал:

    assets\internal - TPath.GetHomePath

    Именно так, только всё это делать вы должны из вашего приложения, так как только оно имеет доступ к этой папке!

    Хммм.. интересно. Попробую. Спасибо!

  15. 30 минут назад, OnePeople сказал:

    Ну приложение имеет доступ к этой папке и может делать что хочешь с этим файлом, но только твое приложение, все легко реализуется!

    Т.е. просто обращаемся по SheredDocument пути и там удаляем перезаписываем и вообще делаем что хотим, даже если это база SQLLite, я правильно понял?

  16. Только что, krapotkin сказал:

    ну, правильный вариант, это конечно, экспорт данных в скрипты, или просто в текст, или в JSON и отправка куда-то на сервер в сети

    а потом импорт этих данных

    для этого совершенно не требуется доступ к файлам в Assets

    вариант с почтой очень экзотический ))

    Да вот как раз и не хочется с этим возиться, если можно просто заменить файл БД и все готово (но вот можно ли).

  17. Доброго дня уважаемые форумчане!

    Есть одна задача, но я не совсем уверен, что так можно, прошу совета.

    В общем есть приложение, в ней база данных SqlLite (файл базы данных деплоится в assets\internal\). Пользователь наполняет эту базу данных своими данными.

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

    Вопрос, даст ли система экспортировать свой файл из assets\internal и главное импортировать его (т.е. фактически заменить существующий файл  базы данных) в папке assets\internal на другом устройстве? (предполагается что root прав у пользователя нет).

    Если да, то можно вкратце объяснить порядок действий (желательно с указанием запрашиваемых и статичных разрешений на это дело, путей обращения к файлам).

    Если нет, то каким образом тогда это можно сделать (формировать промежуточный файл с данными БД, а потом его обрабатывать на другом устройстве средствами СУБД)?

    P.S. Такая задача встала впервые, не очень разбираюсь в теме безопасности на Андроид устройствах и работе с файлами приложения напрямую, поэтому прошу помощи, может быть кто-то уже сталкивался с подобной задачей.

    Заранее спасибо! )

  18. 1 час назад, Олег Киреев сказал:

    Здравствуйте.

    У меня она есть. Файл формата pdf 31 мегабайт. Я дополнил его повставлял закладки по главам для быстрого поиска. У меня впечатления самые лучшие. СпасиБО Всеволоду Леонову. Могу прислать на вашу личную почту.

    С Уважением. Олег.

    Да. Спасибо. отправил в личку.

  19. Доброго дня.

    Недавно узнал, что вышла (еще не все главы, но все-же) бесплатная электронная книга на русском "Обучение мобильной разработке на Delphi", но никак не могу себя заставить скачать (нужно регистрироваться) и попробовать.

    Но может быть кто-то уже скачал и ознакомился. Хотел узнать как впечатления?

    Книга доступна по ссылке https://lp.embarcadero.com/DelphiBookInRussian?utm_source=Eloqua&utm_medium=email&utm_content=Learn-Delphi-eBook-200709

    P.S. Смотрю тут тем про эту книгу нет, хотя она судя по оглавлению довольно интересная должна быть, тем более на русском и бесплатно. Может быть о ней кто-то не знал.

  20. 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);

    не тестил

    Спасибо, работает!

  21. Вопрос по ZXing. А можно ли как-то ограничить количество проверяемых форматов штрихкодов. Он в режиме auto не всегда стабильно работает. Мне нужно проверять всего 2 вида штрикода EAN13 и CODE_39, но как я понят там только или "Авто" или один конкретный формат можно указать, по крайней мере я не смог найти как туда подсунуть лист форматов.

    Если кто решил эту проблему, подскажите пожалуйста.

  22. 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 битная. И заморачиваться с отдельным подписанием не надо будет. Все сделает среда.

  23. 5 часов назад, Сергей Сергеев сказал:

    пс. ПОМОГЛО! вместо ааб- апк сборный и андроид 6 заработал из магазина. Похоже  дельфи бракованный ааб  ( для Андроида 6 ) собирает.. 

    Я тоже долго мучился и не понимал почему некоторые жалуются на то, что приложение не запускается на некоторых устройствах. Вот методом проб и ошибок пришел к такому варианту. Пусть он и корявый, но рабочий! ))

×
×
  • Создать...