• 0
Равиль Зарипов (ZuBy)

[Android/Win] Клиент для fire-monkey.ru [разработка]

Вопросы

Здравствуйте!

 

Сегодня начал писать клиента для нашего форума, надеюсь Ярослав не будет против.

Проект open-source и любой сможет дополнить проект, затем выложить его в эту тему.

Для тех кому это будет интересно, некоторые правила

  • Использовать только родные компоненты
  • Комментировать код
  • Переименовывать переменные и компоненты

Сделал я пока немного

  • парсинг последних сообщений
  • парсинг последних тем
  • авторизация через почту (т.к. я ей пользуюсь)
  • работает на android и windows

post-59-0-56287100-1432733489_thumb.png post-59-0-67269300-1432733508_thumb.png

post-59-0-67425200-1432733519_thumb.png post-59-0-27055800-1432733531_thumb.png

 

Проект

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 0

Эмм... выложите его на Гугл Диск в архиве или сразу в репозиторий, выкачивать по одному файлу совсем не в кайф...

 

и почему выбрали этот раздел? есть же Приложения, написанные с использованием FireMonkey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Эмм... выложите его на Гугл Диск в архиве, выкачивать по одному файлу совсем не в кайф...

 

и почему выбрали этот раздел? есть же Приложения, написанные с использованием FireMonkey

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

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

 

update:

После того как прошла авторизация просто получить главную страницу не получается, сейчас исправил, но мне кажется

Немного запутался с куками...

я так понимаю куки нужны только один раз? Или куки меняються с каждым запросом?

Когда прошла успешная авторизация я сохраняю куки, затем просто подставляю их при каждом запросе

 

поправьте кто в этом разбирается

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Добрый вечер,

 

Я не против. Приветствую начинания. Мельком посмотрел код.

  • У сайта есть XML RPC API. При помощи него можно делать практически все. (получать посты, писать и тд.)

Так что я думаю, оно будет удобнее, чем парсить стиль форума. Не дай бог я стиль подправлю и вся работа пойдет коту под хвост.

 

В общем ключик для использования могу выделить. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Отлично, спасибо. Завтра буду разбираться!

 

update:

а можно получить ключ и на какой адрес отправлять запрос?

если есть немного времени, то распишите подробней

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

если в строке браузера ввести http://fire-monkey.ru/interface/board/index.php

<methodResponse><fault><value><struct><member><name>faultCode</name><value><int>1</int></value></member><member><name>faultString</name><value><string>IP.Board's XML-RPC API system is not enabled. Log into your IP.Board ACP and visit: System -> System Settings -> Advanced -> XML-RPC API and update "Enable XML-RPC API System"</string></value></member></struct></value></fault></methodResponse>

ошибка

IP.Board's XML-RPC API system is not enabled. Log into your IP.Board ACP and visit: System -> System Settings -> Advanced -> XML-RPC API and update "Enable XML-RPC API System"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Разработка продолжается

 

  • Полностью перевел приложение на XML RPC API (демо и исходник тут)
  • Авторизация (если её можно так назвать)
  • Информация о пользователе из профиля (добавлена информация о возрасте +незначительные улучшения кода)
  • Обновил немного дизайн
  • Кэширование данных пользователя и навигации форума (самостоятельное обновление когда это требуется)
  • Используется OXml для Android
  • Кэширование всех картинок пользователей (на данный момент это ~1200 юзеров, НО не все юзеры имеют фотографии) Кэшируется всё на внешнюю память
  • Теперь можно открывать "сайт" из профиля юзера (для Windows с окном уведомления)

в ближайшее время собираюсь реализовать

  1. Доделать навигацию по веткам (как только пойму почему косяк с TTreeView)
  2. Кэширование всех картинок пользователей
  3. разработать иконку и сплеш картинку (может её и вовсе уберу)
  4. много чего...

Проект также open-source, помощь приветствуется

 

исходники выкладываю без бинарников, бинарники лежат на google диске в соответствующих папках (но синхронизация не всегда включена )

 

FireMonkey.ru.zip

 

post-59-0-18632800-1433932716_thumb.pngpost-59-0-48994200-1433932725_thumb.png

post-59-0-62123800-1433932702_thumb.png

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Юрий Гусач
      Доброго дня!
      Проясните пожалуйста ситуацию: при запуске программы  под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и  ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. -       Почему это происходит и можно ли как то это обойти?
       
       
    • От Андрей Лещинский
      Здравствуйте ребята. С Firemonkey знаком только два дня. Многое уже подчеркнул с данного форума. Спасибо вам. 
      Проблема заключается в том, что у меня sdk для андроид 7 версии. Я собираю apk файл, запускаю его на Андроид 7 и все отлично, но как только я устанавливаю приложение на Андроид например версии 5, то при запуске оно мерцает пару раз и потом отображается отлично. Не подскажите в чем проблема? Я пробовал проект с данного форума, чтобы форма уходила под статусбара. Вот все они и мерцают на Андроид ниже 7, другие не пробовал проекты
      Стаж у меня только 2 дня, скажите в какую сторону смотреть мне далее
    • От Вадим Смоленский
      В феврале я сетовал, что мое Windows-приложение не хочет нормально запускаться в Linux под Wine 3.0. Но время идет, вышел Wine 3.6 - и теперь один из тестировщиков радостно сообщил, что всё заработало, за вычетом одного досадного момента. А именно: приложение способно сохранять фокус ввода лишь долю секунды, потом теряет. Соответственно, невозможно ничего ввести в текстовые боксы, разве только одну-две буквы. Можно щелкнуть по заголовку приложения, оно опять получит фокус - и через мгновение снова потеряет. Куда именно при этом переходит фокус, непонятно. Тестировщик утверждает, что только мое приложение ведет себя так, все остальные работают нормально.
      Нет ли у кого-нибудь идей? Что нужно проверить?
    • От Вадим Смоленский
      В декабре я задавал здесь вопрос о борьбе с перехватами нажатий клавиш компонентом TWebBrowser. Продвинутый пользователь Kami посоветовал тогда, раз уж меня интересует только Windows, поставить хук на клавиатуру. Поделился полезной ссылкой. Добавил, что можно еще много чего нагуглить. Что-то действительно нагуглилось - но не в том объеме, чтобы я смог четко понять, как это следует делать. Вопросов много. Куда именно должна быть воткнута функция KeyboardProc? Что в ней должно содержаться, чтобы управление передавалось уже написанному обработчику события FormKeyDown? Многие также упоминают о возникающих проблемах с юникодом, и хорошо было бы понять, как уберечься от них.
      Буду очень признателен, если кто-нибудь осветит эту темную для меня материю.
    • От Вадим Смоленский
      Как преобразовать тип HString в обычную строку?
      Нагуглил упоминания о функции TWindowsString.HStringToString, которая должна находиться в System.WinrtHelpers. Но такого юнита в поставке Delphi не наблюдаю. Может, его можно где-нибудь раздобыть? Или существуют иные способы?
    • От gutalin79
      Почему при добавлении MapView в пример Android Service, приложение перестает работать?
      AndroidSimpleService.zip
       
       
       
      Пример делал по этому видео: 
       
    • От Вадим Смоленский
      Пытаясь разобраться с проблемой размещения файлов в UWP-приложениях, пришел к необходимости создать в своем коде объект класса ApplicationData. Этот класс описан на соответствующей странице майкрософтовской документации, где в самом начале обозначено следующее:
      Namespace:  Windows.Storage
      Assemblies:  Windows.Storage.dll, Windows.dll
      Юнита с именем Windows.Storage или Winapi.Windows.Storage я в поставке Delphi не наблюдаю. Неудивительно, что попытки вставить соответствующие идентификаторы в раздел uses ни к чему не ведут. Как в таких случаях поступают? Откуда берут необходимое?
    • От Вадим Смоленский
      Хочу еще раз обратиться к коллективному разуму в надежде все-таки разобраться с тем, как должен быть устроен пакет appx для размещения в Microsoft Store. А именно - как организовать размещение настроек и пользовательских файлов в специально отведенных для этого папках, а не в установочном каталоге, что запрещено.
      Вся информация, которую я смог к сегодняшнему дню накопать, размещена на этой странице майкрософтовской документации и сводится к тому, что при инсталляции пакета appx автоматически создается хранилище пользовательских данных из трех папок. Цитирую: one for local files, one for roaming files, and one for temporary files. В общем-то, это удобно - по крайней мере, не нужно заботиться о деинсталляции: ровно эти же папки при удалении программы и сотрутся.
      Вопрос в том, как к этому хранилищу обратиться. В идеале, конечно же, хотелось бы иметь возможность уже в Deployment Manager обозначить для некоторых файлов, что они должны быть положены в это хранилище, а не в установочный каталог. Но как это можно сделать и можно ли сделать вообще, мне понять не удалось. Списка констант для параметра Remote Path я найти не смог, а отдельные упоминаемые тут и там константы ('res', 'assets', 'classes', 'library') явно относятся к мобильным платформам, а не к Windows.
      Если так поступить нельзя, остается класть всё в установочный каталог, а при первом запуске приложения переносить в нужное место. Но опять же: как приложению заполучить полный адрес этого места? Ведь это вовсе не привычные нам CSIDL_APPDATA и не CSIDL_COMMON_APPDATA, это нечто новое, доселе невиданное, в документации называемое "local app data store". На той же странице есть пример соответствующего кода с использованием класса ApplicationData, но он написан на незнакомом мне C#. Там есть также ссылки на описание класса ApplicationData, но по ссылкам тоже C# и C++. Был бы очень признателен, если бы кто-нибудь показал мне, как заполучить адрес local app data store средствами Delphi.
    • От Вадим Смоленский
      Целый месяц бодаюсь с Microsoft Store, пытаясь разместить у них свое UWP-приложение в виде пакета appx. Получаю отлуп за отлупом. Проблема: приложение должно располагать папкой для пользователя, отличной от установочного каталога, где он мог бы сохранять файлы. Там же должны храниться файлы настроек. Раньше, создавая дистрибутив в InnoSetup, я всегда предусматривал создание такой папки по адресу <user>\AppData\Roaming\MyApp. Теперь всё полагается указывать в разделе Deployment - но как там указать такой адрес? Вроде бы, есть графа "Remote path", и логично существовать каким-то макросам для нее, вроде AppData - но никакой информации на эту тему я найти не смог. Видел лишь упоминания таких макросов, как res, assets, classes, library - однако все они, как я понял, относятся к мобильным платформам.
      Попытки обходных маневров не удались. Сначала я решил всё класть в установочный каталог, а при первом запуске создавать нужную папку и перебрасывать в нее несколько файлов. На моем компьютере это работает, но при тестировании в Microsoft Store отчего-то валится (присылают скриншот с сообщением "Access is denied"). То ли нельзя стирать файлы в установочном каталоге, то ли нельзя в таком режиме создавать новый каталог. Потом я прочитал где-то, что UWP-приложениям всё равно, где лежат файлы, они могут их менять даже в установочном каталоге. Попробовал всё валить в одну кучу и так работать. Увы, опять отрапортовали о падении ("The app tries to create a file under WindowsApps folder").
      Получается, что все-таки нужно как-то заставить appx-дистрибутив создавать при установке папку по адресу <user>\AppData\Roaming\MyApp. Но как?
      Спрашивал на experts-exchange, там знатоков не нашлось. Если и здесь нет, может, кто-нибудь хотя бы подскажет, в каких местах есть смысл спросить?
    • От Astghik
      Hello !!!
      I want onButtonClick create popup. I use TPopup component. All good, but on android "Back button" click closing forma. But I want close popup (when popup is shown).

       
      //---------------------------------------------------------------------------------
      void __fastcall  btn3PointsClick(TObject *Sender)
      {
          PopUpSettings->IsOpen = true;
          PopUpSettings->PlacementTarget = btn3Points;
          PopUpSettings->BringToFront();
      }
      //-------------------------------------------------------------------------------------
      void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose)
      {
          try {
              if (PopUpSettings->IsOpen == true) {
                  CanClose = false;
              }
              else {
                  CanClose = true;
              }
          } __finally {
              PopUpSettings->IsOpen = false;
          }
      }
      //-------------------------------------------------------------------
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу