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

qz5

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

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

  • Посещение

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

    13

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

  1. 6 часов назад, Delpher-X сказал:

    Исключено. Последней я ставил Delphi Rio CE. 

    Добавляют записи в hosts всякие взломщики программ, чтобы отключить проверку регистрации.

    Может быть ты их ставил еще несколько лет назад, тебе виднее.

  2. 43 минуты назад, Delpher-X сказал:

    Посмотрел, там действительно стоит 127 напротив искомого адреса. И так же заблокирована куча адресов связанных с Delphi. Но как такое вообще могло получиться? 

    Видимо ты взломанные версии Delphi раньше ставил!

    Попался!?

  3. Официальная новость - Delphi & C++Builder FREE Community Editions Updated to Version 10.4.2 Are Now Available!

    Пока надо будет получать для этой версии новые ключи, старые от 10.3.3 не подходят

    Цитата

    There is an issue with the license keys that we are sending out. They are still 10.3.3 License keys that won’t work with the 10.4.2 installed. We will get it resolved shortly

     

  4. 9 часов назад, Ллирик сказал:

    Какой эмулятор посоветуете, чтобы отлаживать мобильные приложения?

    Действительно, с эмуляторами не дружит, но легко купить дешевый смартфон, на который можно легко менять версии Андроида.

    Я вот здесь написал, как я это сделал -

     

    53 минуты назад, krapotkin сказал:

    У большинства тут нет реального андроид 11.

    У меня теперь есть. Я этот смартфон за 10 минут перепрошил на Андроид 11. Действительно моя программа не работала на Андроид 10 и 11 (не могла обратиться к файлам), но я это исправил добавив запись в манифесте.

    Ничего сложного, дольше скачивать образы с новыми версиями Андроид, чем их устанавливать...

  5. Приложение может вылетать по разным причинам.

    Возможно дело в том, что пытаетесь прочитать или записать файл в публичную папку. На Андроид 11 мало запроса разрешения, теперь чтение и запись файлов делается иначе.

     

    У меня приложение на Делфи работает на 29 СДК (это от Андроид 10), но пришлось добавить строку, о которой написано в теме на которую дал ссылку. Иначе не работало на Андроид 11.

  6. Для того, чтобы поддержиывать будущее требование ко всем приложениям иметь SDK 30 надо ждать выхода Делфи 10.4 Community Edition

    Или самому реализовать вот это API: https://developer.android.com/training/data-storage/shared/media#direct-file-paths

    А пока добавить в манифест строку requestLegacyExternalStorage

  7. 6 часов назад, UFO 007 сказал:

    да отладчик-то - фиг ли с ним, но прога не работает - не видит точки доступа...

    по-видимому другой альтернативы нет и придётся грызть ASовскую Яву

    Есть еще например Kotlin, Flutter, Xamarin. Не думали в их сторону посмотреть?

  8. Вот еще почитать на эту тему:

    https://developer.android.com/training/data-storage/use-cases

    и

    https://developer.android.com/about/versions/11/privacy/storage

    Цитата

    After you update your app to target Android 11 (API level 30), the system ignores the requestLegacyExternalStorage attribute when your app is running on Android 11 devices, so your app must be ready to support scoped storage and to migrate app data for users on those devices

    Так что после Target SDK 30 вообще старый код работать не будет... Нужно будет переписывать код работы с файлами.

  9. Дело в том, что ты выставил Target SDK 29

    Теперь чтобы на Андроид 10, 11 или 12 старым способом иметь доступ к файлам надо объявить явно это в манифесте

    Кажется с помощью android:requestLegacyExternalStorage="true"

    но лучше погугли.

    И вообще в будущем возможно... Гугл зарежут прямой доступ к файлам и придется через медиа-запросы обращаться к файлам.

  10. Вообще в других фреймворках для этого используют например Lottie. Он позволяет сделать векторные, красивые, даже анимированные элементы, но в своем JSON формате.

    Я для Вас даже нашел гитхаб, в котором кажется реализована поддержка его на делфи: https://github.com/HashLoad/lottie-player

    Попробуйте перевести SVG в Lottie и потом расскажите.

    Так, посмотрел исходники, оказывается он показывает анимацию через показ... TWebBrowser, в котором JS-скрипт показывает Lottie. Грустно.

    Есть реализацию Lottie под Андроид, но оно для Java: https://github.com/airbnb/lottie-android

    Подключить в Delphi можно, но сложно. Для этого надо сделать по шагам, да и просто уметь:

    1. подключить AAR-библиотеки (я пока не умею)

    2. сделать обертку java2op (это относительно просто)

    3. показать View с анимацией внутри Delphi. Это я не умею, но на этом форуме есть примеры, например подключение View Андроид-камеры:

    Как я понимаю, нужно создать нативный Layout через TJNativeLayout.JavaClass.init, создать и в нем расположить View c Lottie,  потом его в определенном месте окна размещать. Но с нативными View тоже много проблем. Например нельзя обычные FM-элементы размещать частично поверх них или полупрозрачно например.

  11. 7 часов назад, krapotkin сказал:

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

    Про CEF не все знают, нужно было написать про него конкретно, а не отправлять по https://chromedriver.chromium.org/mobile-emulation

  12. В 19.03.2021 в 10:19, Yarpda сказал:

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

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

    Цитата

    CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows, Linux and MacOS

     

  13. Пробежался.

    Да, можно обычным Webview управлять, как Вы делали через Селениум. Селениум у Вас просто удобный инструмент для доступа к режиму удаленного управления браузера. Можно и без него, например через Chrome DevTools.

    Включить то программным образом режим отладки можно через команду setWebContentsDebuggingEnabled(true), но дальше начинаются сложности, остальное видимо возможно только, если писать на Java.

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

    Т.е. режим удаленной отладки, который использует Селениум, и так уже встроен в Webview (веб-браузер, который встраивается в приложения), но предполагается, что его используют не из самой программы, а удаленно. Либо через Chrome DevTools, либо через такие штуки как Селениум.

    p.s. это мои измышления, может реальность и другая. Я еще порою в этом направлении, но сомневаюсь, что смогу найти быстрое решение...

    Так что пока предлагаю переписать все на JS и запускать через EvaluateJavaScript. Там тоже есть свои подводные камни (например получение результата из скрипта), но это по-крайней мере можно сделать в Delphi.

  14. У стандартного Webview есть процедура включения удаленного управления, через который Селениум работает. Называется setWebContentsDebuggingEnabled.

    В Делфи реализовано, но я не пробовал его использовать. Сейчас пороюсь, возможно ли.

  15. ИМХО всё это можно сделать через выполнение js-скриптов на Webview через процедуру EvaluateJavaScript

    С Webview есть проблема с получением результата выполнения js-скрипта назад в приложение, но тоже можно, но через addJavascriptInterface, хотя и заморочисто. Я пробовал делать - плюнул, не было большой необходимости получения результата.

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

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

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