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

CyberStorm

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

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

  • Посещение

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

    10

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

  1. Реализовал у себя в андроид-программе возврат в twebBrowser посредством нажатия функциональной клавиши, типа:

    {TForm1.FormKeyUp}

    if Key = vkHardwareBack then
        if WebBrowser.CanGoBack then
              fWebBrowser.GoBack;

    При пользовании браузера у пользователя сохраняются история типа:

    • Страница 1
    • Страница 2
    • Страница 3

    И собственно пару раз кликнув Назад - можно вернуться к первой странице.

    Вопрос: а как на Странице 3 - очистить историю браузера, чтоб CanGoBack давал false?

  2. 3 часа назад, Равиль Зарипов (ZuBy) сказал:

    Разве нужно разрешение чтобы писать в папку приложения? Или вы пишете на внешнюю память?

    Проверил, оказывается ненужны разрешения. Файлами оперирую во внутренней директории: TPath.GetDocumentsPath.

  3. 3 часа назад, Равиль Зарипов (ZuBy) сказал:

    Нет разницы, а в чем заключается задача?

    Пользователь приложения пишет, что якобы со страницы Google.Play приложение открывается, а при запуске с ярлыка - нет. Вот и подумал, есть ли какие скрытые переменные передающиеся при запуске.

  4. Предположим есть установленное с маркета приложение. Есть ли какая нибудь разница как его запускать - со страницы приложения в Google.Play (типа жмакнуть на кнопку Открыть), или с автоматически созданного ярлыка на главном экране, или же запустить через какой-либо лаунчер (например стандартный "Все приложения"). Меняется ли что-либо для запущенного приложения? Возможно ли отследить откуда был запуск?

  5. добрый день, пользователи Google.Play жалуются, что моё приложение якобы требует root-права. В приложении стоит два разрешения:

    READ_EXTERNAL_STORAGE
    WRITE_EXTERNAL_STORAGE

    Это нужно для оперирования файлами внутри эээ контейнера программы. И в целом root вообще ненужен. Но я так понимаю, некоторые пользователи видят требования о запросе на рут права. Можно ли как нибудь убрать это - чтоб не беспокоить параноидальных юзеров?)

     

     

    1.jpg

    2.jpg

  6. Вкратце: делаю приложение - электронную книгу (платформа андроида), текст вывожу подготовленными html-файлами. Решил сделать настройку размера шрифта, для этого на кнопку забацал вот такой код:

    form1.Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'my.css'), TEncoding.ANSI); \\гружу таблицу стилей
    form1.Memo1.Text:=StringReplace((form1.Memo1.Text), ('font-size: '+inttostr(old_size_font)),  'font-size: '+inttostr(new_size_font), [rfReplaceAll, rfIgnoreCase]);   \\ таким макаром меняю размер шрифта
    form1.Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'my.css'), TEncoding.ANSI); \\гружу обратно
    form1.WebBrowser1.Reload; \\ перезапускаю страницу
     

    код исправно работает, по нажатию все меняется, опубликовал даже в гугл-плее приложение, но взяв еще один телефон для теста - замечаю что при нажатии на кнопку на нём ничего не происходит. Все проверив понимаю, что код работает, запись в стили идет, даже браузер перезапускает страницу - но использует старый стиль. Вот если выйти из приложения и запустить его снова - то все будет нормально, стиль будет измененный.

    Предположил что дело в кеше браузера, ставил в самом TWebBrowser-  EnableCachng в false, вставлял теги в страницы типа:

    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="expires" content="-1" />

    Но, отчего-то безрезультатно. :(

  7. Проблема, делаю клиент для IRC на Delphi 10.1 для андроида, подключаюсь всё нормально, но при получении русских символов TMemo куда я вывожу текст получает символы таокго формата ���� (ромб с вопросом)

    Понимаю что дело в кодировке, но что я только не пробовал не получается:

    procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname,
      AHost, ATarget, AMessage: string);
    begin
    form1.MemoChat.Lines.Add(AMessage);
    form1.MemoChat.Lines.Add(AnsiToUtf8(AMessage));
    form1.MemoChat.Lines.Add(Utf8ToAnsi(AMessage));

    end;

    В теории сервер передает строки формата ANSI, так что я не понимаю чего нужно дельфям что бы нормально их выводить...

  8. Имеется бумажная книга которую нужно перевести в электронный формат для android'a. На данный момент, книга реализована двумя компонентами:

    1. Twebbrowser для вывода текста (текст заранее отформатирован, разбит на главы формата html, снабжен перекрестными ссылками)
    2. обычный Tedit используется для поиска

    Выглядит примерно вот так:

    123.png

    Хочется развития, что бы пользователь мог выделять нужный ему текст/править/добавлять комментарии/ставить закладки и т.д.

    На десктопе все было бы просто - обычный RichEdit решил бы все проблемы. Жаль что его реализации на androide нет (пробовал популярный TMS Component Pack, но и там richedit только для windows\mac). Вижу решение в большом использовании javascript в самих страницах, но это с ним разбираться нужно. Так же вижу решение ждать пока официально появится аналог richedit. 

    Хотелось бы узнать мнения.

  9. Сорри что поднимаю эту тему, но вылазиет аналогичная (см. тему) ошибка. Проблема заключается в трех-строчках:

    Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'my.html')); // загружаем в мемо текст
    Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'temp.html'));  //сохраняем в файл
    WebBrowser1.Navigate('file:///'+TPath.Combine(TPath.GetDocumentsPath, 'temp.html')); //пытаемся открыть

    при компилировании в windows - все норм, на андроиде - проблема с кодировками <_< пробовал тысячи способв - но как будто об стенку. Помогите!! :unsure: 

    если первую строчку заменить на типа memo1.text:='траляля'; то код становится рабочим

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