qz5
Пользователи-
Постов
151 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Весь контент qz5
-
Добавляют записи в hosts всякие взломщики программ, чтобы отключить проверку регистрации. Может быть ты их ставил еще несколько лет назад, тебе виднее.
-
Видимо ты взломанные версии Delphi раньше ставил! Попался!?
-
Может быть надо вручную установить SDK 30 и с ее указать для сборки? p.s. я переучиваюсь на flutter
-
Смотрите путь к файлам в настройках проекта. Не смогу подсказать точнее, нет Делфи под рукой.
-
Поменять пути к файлам с абсолютных на относительные то есть не должно быть всяких C:\project\superapp\unit1.pas и C:\project\superapp\lib\libunit1.pas должны быть типа lib\libunit1.pas
-
Действительно, с эмуляторами не дружит, но легко купить дешевый смартфон, на который можно легко менять версии Андроида. Я вот здесь написал, как я это сделал - У меня теперь есть. Я этот смартфон за 10 минут перепрошил на Андроид 11. Действительно моя программа не работала на Андроид 10 и 11 (не могла обратиться к файлам), но я это исправил добавив запись в манифесте. Ничего сложного, дольше скачивать образы с новыми версиями Андроид, чем их устанавливать...
-
Я бы с удовольствием, но 10.4 Community до сих пор вроде не вышла :(
-
Я пока лишь присматриваюсь, немного пробую Непривычно всё это действительно
-
Я начал Flutter изучать по-тихоньку
-
Приложение может вылетать по разным причинам. Возможно дело в том, что пытаетесь прочитать или записать файл в публичную папку. На Андроид 11 мало запроса разрешения, теперь чтение и запись файлов делается иначе. У меня приложение на Делфи работает на 29 СДК (это от Андроид 10), но пришлось добавить строку, о которой написано в теме на которую дал ссылку. Иначе не работало на Андроид 11.
-
Что именно перестало работать? Вы файл на устройстве прочитать или записать не можете?
-
Для того, чтобы поддержиывать будущее требование ко всем приложениям иметь SDK 30 надо ждать выхода Делфи 10.4 Community Edition Или самому реализовать вот это API: https://developer.android.com/training/data-storage/shared/media#direct-file-paths А пока добавить в манифест строку requestLegacyExternalStorage
-
Видимо это будет Вам полезно (я писал в другой теме):
-
Есть еще например Kotlin, Flutter, Xamarin. Не думали в их сторону посмотреть?
-
Дело в том, что ты выставил Target SDK 29 Теперь чтобы на Андроид 10, 11 или 12 старым способом иметь доступ к файлам надо объявить явно это в манифесте Кажется с помощью android:requestLegacyExternalStorage="true" но лучше погугли. И вообще в будущем возможно... Гугл зарежут прямой доступ к файлам и придется через медиа-запросы обращаться к файлам.
-
Вообще в других фреймворках для этого используют например 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-элементы размещать частично поверх них или полупрозрачно например.
-
Про CEF не все знают, нужно было написать про него конкретно, а не отправлять по https://chromedriver.chromium.org/mobile-emulation
- 15 ответов
-
- twebbrowser
- windows
-
(и ещё 1 )
C тегом:
-
Есть еще вариант использовать CEF4Delphi - https://github.com/salvadordf/CEF4Delphi
- 15 ответов
-
- twebbrowser
- windows
-
(и ещё 1 )
C тегом:
-
Если 10-ая винда, то можно через TEdgeBrowser Edge поддерживает жесты, но работает это всё только на 10-ке
- 15 ответов
-
- twebbrowser
- windows
-
(и ещё 1 )
C тегом:
-
Пробежался. Да, можно обычным Webview управлять, как Вы делали через Селениум. Селениум у Вас просто удобный инструмент для доступа к режиму удаленного управления браузера. Можно и без него, например через Chrome DevTools. Включить то программным образом режим отладки можно через команду setWebContentsDebuggingEnabled(true), но дальше начинаются сложности, остальное видимо возможно только, если писать на Java. Дальше я просто не знаю. Там уже темный лес, но в любом случае лезьте туда. только если знаете Java. Т.е. режим удаленной отладки, который использует Селениум, и так уже встроен в Webview (веб-браузер, который встраивается в приложения), но предполагается, что его используют не из самой программы, а удаленно. Либо через Chrome DevTools, либо через такие штуки как Селениум. p.s. это мои измышления, может реальность и другая. Я еще порою в этом направлении, но сомневаюсь, что смогу найти быстрое решение... Так что пока предлагаю переписать все на JS и запускать через EvaluateJavaScript. Там тоже есть свои подводные камни (например получение результата из скрипта), но это по-крайней мере можно сделать в Delphi.
-
У стандартного Webview есть процедура включения удаленного управления, через который Селениум работает. Называется setWebContentsDebuggingEnabled. В Делфи реализовано, но я не пробовал его использовать. Сейчас пороюсь, возможно ли.
-
ИМХО всё это можно сделать через выполнение js-скриптов на Webview через процедуру EvaluateJavaScript С Webview есть проблема с получением результата выполнения js-скрипта назад в приложение, но тоже можно, но через addJavascriptInterface, хотя и заморочисто. Я пробовал делать - плюнул, не было большой необходимости получения результата. Так что если просто выполнить скрипт, без проверки результата и на одной странице, без перехода между страницами, то evaluateJavascript хватит. Если надо отслеживать логику с перемещениями по сайту, проверять что введено в каком-то поле, то с этим проблемы.