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

Лидеры

  1. Fedor K

    Fedor K

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


    • Баллы

      2

    • Постов

      55


  2. Rusland

    Rusland

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


    • Баллы

      1

    • Постов

      1 204


  3. ENERGY

    ENERGY

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


    • Баллы

      1

    • Постов

      568


  4. Ingalime

    Ingalime

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


    • Баллы

      1

    • Постов

      354


Популярный контент

Показан контент с высокой репутацией 05.06.2017 во всех областях

  1. Причина такого поведения довольно простая - java библиотеки FMX часто передают в Delphi только уведомление о событии, без непосредственного влияния на процесс. Открываем библиотеку fmx.jar и смотрим код класса WebClient (package com.embarcadero.firemonkey.webbrowser;): public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { super.onReceivedSslError(view, handler, error);// обработка ошибки происходит здесь по дефолту if (this.mListener != null) { this.mListener.onReceivedSslError(view, handler, error);//передача в Delphi лишь уведомления, что событие произошло } } Одно из решений*: 1. Заменяем** код на: public void onReceivedSslError(WebView paramWebView, SslErrorHandler paramSslErrorHandler, SslError paramSslError) { if (this.mListener != null) { this.mListener.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//Delphi обработчик } else { super.onReceivedSslError(paramWebView, paramSslErrorHandler, paramSslError);//обработчик по умолчанию } } После манипуляций получаем свою версию библиотеки, мой пример здесь (Delphi Berlin). 2. Подключаем библиотеку к проекту (скриншот ниже). 3. Копируем unit FMX.WebBrowser.Android в папку своего проекта и меняем следующие строки: procedure TAndroidWebBrowserService.TWebBrowserListener.onReceivedSslError( P1: JWebView; P2: JSslErrorHandler; P3: JSslError); begin P2.proceed;//добавляем разрешение для истекших сертификатов FWBService.FailLoadingWithError;//стандартный обработчик OnDidFailLoadWithError end; *Если вариант изменения кода java библиотек совсем не подходит, можно реализовать все средствами Delphi. Для этого создаем свою реализация класса WebViewClient (или WebClient) и задаем его для JWebBrowser: //все тот же unit FMX.WebBrowser.Android; procedure TAndroidWebBrowserService.InitUIThread; var lClient : TWebBrowserCLientFix;//наш класс begin FJWebBrowser := TJWebBrowser.JavaClass.init(TAndroidHelper.Activity); FJWebBrowser.getSettings.setJavaScriptEnabled(True); lClient := TWebBrowserCLientFix.Create(Self); FJWebBrowser.setWebViewClient(lClient);//меняем на наш класс FListener := TWebBrowserListener.Create(Self); lClient.SetWebViewListener(FListener); //комментируем //FJWebBrowser.SetWebViewListener(FListener); **Замена кода происходит по тому же сценарию, как и создание своих собственных классов на java. Если кому потребуется помощь - пишите, я помогу ответами и примером.
    2 балла
  2. Дошло в чем у меня была проблема: оказалось что я в проект подкидывал FMX.WebBrowser.Android.pas из Токио, а не Берлина. Fedor K, cпасибо
    1 балл
  3. Я делаю проще, вот мультиплатформенный вариант: обычная форма, Transparent := true; на форме AniIndicator Align = HorzCenter. В результате получаем отображается только AniIndicator по центру экрана. Можно добавить и label на Tlayout вместе с AniIndicator, а у Tlayout поставить Align = HorzCenter или VertCenter. Форму конечно, как и все остальные формы создавать нужно динамически и уничтожать когда не нужно. Можно еще сделать чтобы весь остальной фон, кроме текущей формы был затемненный - установите цвет у формы с AniIndicator в #AA000000 (Kind = Solid). А можно еще сделать чтобы фон плавно затемнялся после появления загрузочной формы. class procedure TfrmDial.ShowForm; begin if frmDial = nil then frmDial := TfrmDial.Create(nil); frmDial.Fill.Color := TColorRec.Null; frmDial.Show; Application.ProcessMessages; TAnimator.AnimateColor(frmDial, 'Fill.Color', FADE_OUT_COLOR, 0.3); end; И да кстати, Tokyo пока нельзя использовать для разработки Android приложений, до выхода первого Update, там есть критические баги, скорее всего проблема ТС - как раз связана с этими багами.
    1 балл
  4. Избавление от фонтомных пушей - замена посылки пуша с get на post. Соотвественно изменение php сервера. Решение подсказано Fedor K.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...