Евгений Корепов

Пользователи
  • Публикаций

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

  • Посещение

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

    65

Евгений Корепов стал победителем дня 21 марта

Евгений Корепов имел наиболее популярный контент!

1 Подписчик

Информация о Евгений Корепов

  • Звание
    Продвинутый пользователь
  • День рождения 22 июля

Информация

  • Пол
    Мужчина
  • Город
    Ухта

Посетители профиля

2 341 просмотр профиля
  1. Соблазн велик! Но не поддавайтесь ереси! 😉 Ну или поддавайтесь 😉 Сделав все самостоятельно, вы не только сэкономите деньги, но и получите бесценный опыт. И получите площадку для сотен приложений. Тот же myclouddata очень ограничен - бесплатный аккаунт 1000 записей в таблице это ниочем. Да и платный с миллионом записей тоже не поражает воображение. Одно из моих приложений за пару лет накидало в таблицу с регистрациями FCM 600 тысяч записей. Так что вы (или заказчик приложения) может упереться в ограничение в самый неподходящий момент и придется судорожно искать другой сервис.
  2. Вы всегда можете изменить max_execution_time (равный по умолчанию 30 сек) в runtime : ini_set('max_execution_time', '3600');
  3. 1) Не безопасно. Потому как авторизация нужна (хотя бы в виде ключа "xq34mt89o32834yt9148t87913" в параметрах запроса 😉 2) Это точно не нужно - безумная на грузка на сервер, транспортный протокол и клинта. 3) FTP - можно но нафик. Во первых отдельная логика на стороне клиента, во вторых хостер обычно предоставляет FTP доступ ко всей площадке, а хранить логин/пароль от площадки на клиенте это - нельзя. К счастью у нас на стороне сервера есть PHP, который для этого и предназначен: <?php //@ini_set("display_errors", "1"); error_reporting(E_ALL); @ini_set("display_errors", "0"); error_reporting(0); $SecureToken = "ce48oltq38p94tv83"; // Ключ для доступа $FilesPath = "/usr/share/My_Secret_File_folder/"; // Место хранения бинарных файлов // Просто пример неких данных для передачи пользователю в формате JSON (но храним и оперируем мы ими в обычном массиве $ExampleUserData = array( "Овощи" => array( "Помидорка", ), "Фрукты" => array( "Яблочко", ), ); if (!isset($_GET['token']) or $_GET['token'] != $SecureToken) { echo "Ах ты хитрая жопа! Пожалуйста, не взламывай мой сервер!"; exit; } if (!isset($_GET['command'])) { echo "Нет команды, не знаю что делать..."; exit; } switch ($_GET['command']) { "get_file" : if (!isset($_GET['file_name'])) { echo "Не знаю какой файл ты хочешь..."; exit; } $BinatyFilePath = $FilesPath . $_GET['file_name']; if (!file_exists($BinatyFilePath)) { echo "Не угадал, нет такого файла..."; exit; } if (ob_get_level()) { ob_end_clean(); } header('Content-Description: File Transfer'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($BinatyFilePath)); // читаем файл и отправляем его пользователю if ($fd = fopen($BinatyFilePath, 'rb')) { while (!feof($fd)) { print fread($fd, 1024); } fclose($fd); } break; "get_data" : $JSONData = json_encode($ExampleUserData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); header('Content-Type: application/json; charset=utf-8'); echo $JSONData; break; default : echo "Не знаю такой комманды..."; } Вот это простой кусок кода сделает следующие вещи: http://my_server.com/api/?token=ce48oltq38p94tv83&command=get_data - отдаст JSON данные http://my_server.com/api/?token=ce48oltq38p94tv83&command=get_file&file_name=naked_girl.jpg - отдаст бинарный файл, предположительно с изображение голой девушки. Ну а на в приложении вам останется только: Var HTTPResponse : IHTTPResponse; begin HTTPResponse:=FHTTPClient.Get(AURL); HTTPResponse.ContentAsString или HTTPResponse.ContentStream, смотря что вы запрашивали.
  4. 1. Хостинг рекомендую https://masterhost.ru/service/hosting/individual/ , это один из старейших и надежнейших хостеров России, там вы получите сразу все вам необходимое - MySQL, PHP любимой версии, если проект попрет, то сможете добавлять процессоры, память и т.д. Так же сможете зарегить домен под это дело, и при надобности получить SSL сертификат на этот домен. Все остальные хостинги игнорируйте, по крайней мере Российские. За почти 20 лет использования, мастерхост ни разу не подвел, а только радовал новыми плюшками. Реализация в вашем случае примерно такая: 1. MySQL на хостере - обеспечит вам работу и 10 миллионов активных пользователей. Но важно правильно спланировать структуру базы, структуру таблиц и структуру индексов таблиц. Если вы в этом не профи, то лучше нанять профи - ибо это фундамент, который потом очень сложно будет изменить. 2. PHP на хостере - прокладка между базой и запросами/ответами приложения. Рекомендую использовать самую свежую версию PHP, чтоб потом не пришлось перекраивать код удаляя deprecated функции и конструкции. 3. Протокол обмена - REST. Не вздумайте погружаться в теорию, читать про RESTful и пытаться реализовывать, этим занимаются только люди под тяжелыми наркотиками и обычно без единого законченного реального проекта. Достаточно того что приложение будет отправлять на сервер GET запросы получать JSON ответы. Можете подогнать протокол под существующие в Delphi компоненты TRESTClient, а можете и сами на стороне приложения разгребать JSON и получать нужные данные. Это совсем не сложно. 4. Приложение - посылает на сервер HTTP GET (ну или POST) запросы посредством THTTPClient, получает ответы в виде JSON, парсит их и так далее. Все содержимое предыдущего предложения - в отдельном потоке. Ну или используйте готовый TRESTClient - если готовы разбираться в нюансах его работы. Вот как то так.
  5. Евгений Корепов

    Не работает onClose (Android)

    Для этого есть событие TForm.OnSaveState http://docwiki.embarcadero.com/Libraries/Rio/en/FMX.Forms.TForm.OnSaveState
  6. Вам нужно перехватывать события браузера OnWebBrowserShouldStartLoadWithRequest(ASender: TObject; const URL: string); OnWebBrowserCanNavigateEvent(Sender: TObject; const iURL: String; var ioCanNavigate: Boolean); проверять URL и iURL, и если там ссылка на номер телефона, то самостоятельно ее открывать, к примеру так: procedure TFormMain.OpenURL(const AUrl: string); var Uri: Jnet_Uri; OpenLinkIntent: JIntent; begin Uri := StrToJURI(AUrl); OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); TAndroidHelper.Activity.startActivity(OpenLinkIntent); end; Андроид откроет звонилку с уже вбитым номером телефона (или предложит выбрать приложение, если есть варианты и не выбран какой то по умолчанию).
  7. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Вот вам apk приложения для того чтоб потестить самостоятельно. UhtaBus.7z
  8. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Я проверил. После патча все работает как задумано, браузер наследует разрешения приложения: Если приложению правильно даны разрешения на геолокацию, то браузер разрешения не спрашивает, геолокация нормально работает в браузере. Если пользователь не дал приложению разрешение на геолокацию, то в браузере она тоже работать не будет, причем браузер и не будет сообщать о том что нет разрешения - при тыке на кнопку мое положение ничего не происходит. Это вполне нормально - пользователь сознательно отказался и понимает что геолокация работать не будет. Приложение, если пользователь не дал разрешение, и не должно по идее открывать браузер, если геолокация важная составляющая сервиса. У меня к примеру выдается сообщение - мол вы не дали разрешение, приложение работать не может. И по идее нужно предлагать пользователю открыть настройки для того чтоб он дал разрешение. Кстати в каком то приложении видел что по кнопке открываются настройки приложений - удобно, но как интересно это сделать?
  9. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Полностью готовое и верное решение тут https://gist.github.com/ashumkin/3e2e213d657162ae26d364a85c64b472 Главное правильно в батнике выставить все пути. P.S. Давно бы уже эмба создала систему перекомпиляции прямо в среде, чтоб не мучаться с батниками в винде.
  10. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Создал Issue https://quality.embarcadero.com/browse/RSP-24039 проголосуйте господа.
  11. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Бедные программисты java, сколько странных и не очевидных нюансов ((( А для release достаточно поменять пути? Никаких дополнительных опций не нужно?
  12. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Алексей, позволь еще раз поблагодарить! И прошу прощения за то что я тупил и капризничал 😉
  13. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Где моё блюдечко!!! И чтоб с голубой каёмочкой!!! 🙂 Просто никогда с этим не связывался, да и времени погружаться в нюансы просто нет ( Связал. Мой косяк. Дебильный путь от Эмбы сбил с толку. Вот первый раз решил SDK решил оставить по умолчанию (обычно он у меня в D:\PlatformSDKs) и теперь пожинаю плоды... Теперь гораздо-гораздо лучше! Куча предупреждений, но кто их читает 😉 D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>D:\Embarcadero\fmx.jar-rebuild.cmd D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_121 D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>set SDK=C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>if "xD:\Embarcadero\Studio\20.0" == "x" set BDS=D:\Embarcadero\Studio\20.0 D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>cd D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>PATH C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;d:\Embarcadero\Studio\20.0\bin;d:\Embarcadero\Studio\20.0\bin64;D:\Embarcadero\ Studio\20.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl;D:\Embarcadero\Studio\20.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Win64;C:\Program Files\Microsoft MPI\Bin\;C:\ProgramData\Oracle\Java\javapath;D:\PlatformSDKs\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Java\jdk1.7.0_71\bin;C:\WINDOWS\s ystem32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\OpenSSL-Win32\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\OpenVPN\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\PHP\;C:\ProgramData\ ComposerSetup\bin;C:\ProgramData\ComposerSetup\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\Users\ekore\AppData\Local\GitHubDesktop\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\PHP\;C:\Users\ekore\AppData\Roaming\Composer\vendor\bin;C:\ProgramData\ComposerSetup\bin; & javac com\embarcadero\firemonkey\webbrowser\* .java -cp "C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar" warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/Bitmap.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/net/http/SslError.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/os/Message.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/KeyEvent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/HttpAuthHandler.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/SslErrorHandler.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebView.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/content/Context.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebChromeClient.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/GeolocationPermissions.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/GeolocationPermissions$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewTreeObserver.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewTreeObserver$OnGlobalFocusChangeListener.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroup.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroup$OnHierarchyChangeListener.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewParent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewManager.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/View.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/drawable/Drawable.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/drawable/Drawable$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/KeyEvent$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/os/Parcelable.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/InputEvent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/accessibility/AccessibilityEventSource.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/widget/AbsoluteLayout.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebViewClient.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$ExportedProperty.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$IntToString.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$FlagToString.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroupOverlay.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/util/SparseArray.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. Note: com\embarcadero\firemonkey\webbrowser\WebClient.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. 32 warnings D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>rem copy "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar.bak" D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>jar -vuf "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" com\embarcadero\firemonkey\webbrowser\OnWebViewListener.class com\embarcadero\firemonkey\webbrowser\WebBrowser.class com\embarcadero\firemonkey\webbrowser\WebBrowser$1.class com\embarcadero\firemonkey\webbrowser\WebClien t.class adding: com/embarcadero/firemonkey/webbrowser/OnWebViewListener.class(in = 1183) (out= 482)(deflated 59%) adding: com/embarcadero/firemonkey/webbrowser/WebBrowser.class(in = 1023) (out= 508)(deflated 50%) adding: com/embarcadero/firemonkey/webbrowser/WebClient.class(in = 2881) (out= 1151)(deflated 60%) adding: com/embarcadero/firemonkey/webbrowser/WebBrowser$1.class(in = 861) (out= 454)(deflated 47%) И в конце приз - все заработало! Геолокация в браузере работает. Браузер даже не спросил разрешения на геолокацию - в приложении разрешения есть, и как я понимаю теперь браузер использует разрешения приложения.
  14. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Вот батник: set JAVA_HOME=C:\Program Files\Java\jre1.8.0_121 set SDK=C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms if "x%BDS%" == "x" set BDS=D:\Embarcadero\Studio\20.0 cd %BDS%\source\rtl\androiddex\java\fmx\src PATH %JAVA_HOME%\bin\;%PATH% & javac com\embarcadero\firemonkey\webbrowser\*.java -cp "%SDK%\android-sdk-windows\platforms\android-26\android.jar" rem copy "%BDS%\lib\android\debug\fmx.jar" "%BDS%\lib\android\debug\fmx.jar.bak" jar -vuf "%BDS%\lib\android\debug\fmx.jar" com\embarcadero\firemonkey\webbrowser\OnWebViewListener.class com\embarcadero\firemonkey\webbrowser\WebBrowser.class com\embarcadero\firemonkey\webbrowser\WebBrowser$1.class com\embarcadero\firemonkey\webbrowser\WebClient.class Вот результат его работы D:\>D:\Embarcadero\fmx.jar-rebuild.cmd D:\>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_121 D:\>set SDK=C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms D:\>if "xD:\Embarcadero\Studio\20.0" == "x" set BDS=D:\Embarcadero\Studio\20.0 D:\>cd D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>PATH C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;d:\Embarcadero\Studio\20.0\bin;d:\Embarcadero\Studio\20.0\bin64;D:\Embarcadero\Studio\20.0\bin;C:\Users\Public\Document s\Embarcadero\Studio\20.0\Bpl;D:\Embarcadero\Studio\20.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Win64;C:\Program Files\Microsoft MPI\Bin\;C:\ProgramData\Oracle\Java\javapath;D:\PlatformSDKs\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Java\jdk1.7.0_71\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\W bem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\OpenSSL-Win32\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\OpenVPN\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\PHP\;C:\ProgramData\ComposerSetup\bin;C:\ProgramData\Compose rSetup\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\Users\ekore\AppData\Local\GitHubDesktop\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\PHP\;C:\Users\ekore\AppData\Roaming\Composer\vendor\bin;C:\ProgramData\ComposerSetup\bin; & javac com\embarcadero\firemonkey\webbrowser\*.java -cp "C:\Users\Public\Documents\Emb arcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-sdk-windows\platforms\android-26\android.jar" com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:3: error: package android.graphics does not exist import android.graphics.Bitmap; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:4: error: package android.net.http does not exist import android.net.http.SslError; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:5: error: package android.os does not exist import android.os.Message; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:6: error: package android.view does not exist import android.view.KeyEvent; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:7: error: package android.webkit does not exist import android.webkit.HttpAuthHandler; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:8: error: package android.webkit does not exist import android.webkit.SslErrorHandler; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:9: error: package android.webkit does not exist import android.webkit.WebView; ^ com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:12: error: cannot find symbol public void doUpdateVisitedHistory(WebView view, String url, ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:15: error: cannot find symbol public void onFormResubmission(WebView view, Message dontResend, ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:15: error: cannot find symbol public void onFormResubmission(WebView view, Message dontResend, ^ symbol: class Message location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:16: error: cannot find symbol Message resend); ^ symbol: class Message location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:18: error: cannot find symbol public void onLoadResource(WebView view, String url); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:20: error: cannot find symbol public void onPageFinished(WebView view, String url); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:22: error: cannot find symbol public void onPageStarted(WebView view, String url, Bitmap favicon); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:22: error: cannot find symbol public void onPageStarted(WebView view, String url, Bitmap favicon); ^ symbol: class Bitmap location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:24: error: cannot find symbol public void onReceivedError(WebView view, int errorCode, ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:27: error: cannot find symbol public void onReceivedHttpAuthRequest(WebView view, ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:28: error: cannot find symbol HttpAuthHandler handler, String host, String realm); ^ symbol: class HttpAuthHandler location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:30: error: cannot find symbol public void onReceivedSslError(WebView view, SslErrorHandler handler, ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:30: error: cannot find symbol public void onReceivedSslError(WebView view, SslErrorHandler handler, ^ symbol: class SslErrorHandler location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:31: error: cannot find symbol SslError error); ^ symbol: class SslError location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:33: error: cannot find symbol public void onScaleChanged(WebView view, float oldScale, float newScale); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:35: error: cannot find symbol public void onUnhandledKeyEvent(WebView view, KeyEvent event); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:35: error: cannot find symbol public void onUnhandledKeyEvent(WebView view, KeyEvent event); ^ symbol: class KeyEvent location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:37: error: cannot find symbol public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:37: error: cannot find symbol public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event); ^ symbol: class KeyEvent location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\OnWebViewListener.java:39: error: cannot find symbol public boolean shouldOverrideUrlLoading(WebView view, String url); ^ symbol: class WebView location: interface OnWebViewListener com\embarcadero\firemonkey\webbrowser\WebBrowser.java:3: error: package android.content does not exist import android.content.Context; ^ com\embarcadero\firemonkey\webbrowser\WebBrowser.java:4: error: package android.webkit does not exist import android.webkit.WebChromeClient; ^ com\embarcadero\firemonkey\webbrowser\WebBrowser.java:5: error: package android.webkit does not exist import android.webkit.WebView; ^ com\embarcadero\firemonkey\webbrowser\WebBrowser.java:6: error: package android.webkit.GeolocationPermissions does not exist import android.webkit.GeolocationPermissions.Callback; ^ com\embarcadero\firemonkey\webbrowser\WebBrowser.java:8: error: cannot find symbol public class WebBrowser extends WebView { ^ symbol: class WebView com\embarcadero\firemonkey\webbrowser\WebClient.java:3: error: package android.graphics does not exist import android.graphics.Bitmap; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:4: error: package android.net.http does not exist import android.net.http.SslError; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:5: error: package android.os does not exist import android.os.Message; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:6: error: package android.view does not exist import android.view.KeyEvent; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:7: error: package android.webkit does not exist import android.webkit.HttpAuthHandler; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:8: error: package android.webkit does not exist import android.webkit.SslErrorHandler; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:9: error: package android.webkit does not exist import android.webkit.WebView; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:10: error: package android.webkit does not exist import android.webkit.WebViewClient; ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:12: error: cannot find symbol public class WebClient extends WebViewClient { ^ symbol: class WebViewClient com\embarcadero\firemonkey\webbrowser\WebBrowser.java:11: error: cannot find symbol private WebChromeClient mWebChromeClient; ^ symbol: class WebChromeClient location: class WebBrowser com\embarcadero\firemonkey\webbrowser\WebBrowser.java:22: error: cannot find symbol public WebBrowser(Context context) { ^ symbol: class Context location: class WebBrowser com\embarcadero\firemonkey\webbrowser\WebClient.java:21: error: cannot find symbol public void doUpdateVisitedHistory(WebView view, String url, ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:30: error: cannot find symbol public void onFormResubmission(WebView view, Message dontResend, ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:30: error: cannot find symbol public void onFormResubmission(WebView view, Message dontResend, ^ symbol: class Message location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:31: error: cannot find symbol Message resend) { ^ symbol: class Message location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:39: error: cannot find symbol public void onLoadResource(WebView view, String url) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:47: error: cannot find symbol public void onPageFinished(WebView view, String url) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:55: error: cannot find symbol public void onPageStarted(WebView view, String url, Bitmap favicon) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:55: error: cannot find symbol public void onPageStarted(WebView view, String url, Bitmap favicon) { ^ symbol: class Bitmap location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:63: error: cannot find symbol public void onReceivedError(WebView view, int errorCode, ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:72: error: cannot find symbol public void onReceivedHttpAuthRequest(WebView view, ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:73: error: cannot find symbol HttpAuthHandler handler, String host, String realm) { ^ symbol: class HttpAuthHandler location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:81: error: cannot find symbol public void onReceivedSslError(WebView view, SslErrorHandler handler, ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:81: error: cannot find symbol public void onReceivedSslError(WebView view, SslErrorHandler handler, ^ symbol: class SslErrorHandler location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:82: error: cannot find symbol SslError error) { ^ symbol: class SslError location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:90: error: cannot find symbol public void onScaleChanged(WebView view, float oldScale, float newScale) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:98: error: cannot find symbol public void onUnhandledKeyEvent(WebView view, KeyEvent event) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:98: error: cannot find symbol public void onUnhandledKeyEvent(WebView view, KeyEvent event) { ^ symbol: class KeyEvent location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:106: error: cannot find symbol public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:106: error: cannot find symbol public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { ^ symbol: class KeyEvent location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:114: error: cannot find symbol public boolean shouldOverrideUrlLoading(WebView view, String url) { ^ symbol: class WebView location: class WebClient com\embarcadero\firemonkey\webbrowser\WebBrowser.java:25: error: cannot find symbol this.setWebViewClient(mWebClient); ^ symbol: method setWebViewClient(WebClient) com\embarcadero\firemonkey\webbrowser\WebBrowser.java:26: error: cannot find symbol mWebChromeClient = new WebChromeClient() { ^ symbol: class WebChromeClient location: class WebBrowser com\embarcadero\firemonkey\webbrowser\WebBrowser.java:33: error: cannot find symbol this.setFocusable(true); ^ symbol: method setFocusable(boolean) com\embarcadero\firemonkey\webbrowser\WebClient.java:23: error: cannot find symbol super.doUpdateVisitedHistory(view, url, isReload); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:20: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:32: error: cannot find symbol super.onFormResubmission(view, dontResend, resend); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:29: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:40: error: cannot find symbol super.onLoadResource(view, url); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:38: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:48: error: cannot find symbol super.onPageFinished(view, url); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:46: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:56: error: cannot find symbol super.onPageStarted(view, url, favicon); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:54: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:65: error: cannot find symbol super.onReceivedError(view, errorCode, description, failingUrl); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:62: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:74: error: cannot find symbol super.onReceivedHttpAuthRequest(view, handler, host, realm); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:71: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:83: error: cannot find symbol super.onReceivedSslError(view, handler, error); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:80: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:91: error: cannot find symbol super.onScaleChanged(view, oldScale, newScale); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:89: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:99: error: cannot find symbol super.onUnhandledKeyEvent(view, event); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:97: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:110: error: cannot find symbol return super.shouldOverrideKeyEvent(view, event); ^ symbol: variable super location: class WebClient com\embarcadero\firemonkey\webbrowser\WebClient.java:105: error: method does not override or implement a method from a supertype @Override ^ com\embarcadero\firemonkey\webbrowser\WebClient.java:113: error: method does not override or implement a method from a supertype @Override ^ 89 errors D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>rem copy "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar.bak" D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>jar -vuf "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" com\embarcadero\firemonkey\webbrowser\OnWebViewListener.class com\embarcadero\firemonkey\webbrowser\WebBrowser.class com\embarcadero\firemonkey\webbrowser\WebBrowser$1.class com\embarcadero\firemonkey\webbrowser\WebClien t.class com\embarcadero\firemonkey\webbrowser\OnWebViewListener.class : no such file or directory com\embarcadero\firemonkey\webbrowser\WebBrowser.class : no such file or directory com\embarcadero\firemonkey\webbrowser\WebBrowser$1.class : no such file or directory com\embarcadero\firemonkey\webbrowser\WebClient.class : no such file or directory
  15. Евгений Корепов

    Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию

    Хм, и никакого fmx-dexed-.jar в либах у меня не наблюдается, есть fmx.dex.jar. Странно что при куче ошибок что даже создалось в fmx.jar. Но проблему не решило.