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

alexbirukov

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

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

  • Посещение

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

    4

Весь контент alexbirukov

  1. Что именно нашёл? Там в статье есть ссылки на библиотеки PHP для работы с Push, есть примеры работы. Я просто объединил обе библиотеки одним скриптом простейшим + прикрутил запись токенов в базу. Код для Delphi взял из одного видео испанца (или итальянца), где он делает отправку Push через обращение напрямую к сервисам, но опять же используется токен. Я взял оттуда часть определения токена устройства. Просто для меня скрипт на PHP удобен тем, что к нему я могу обратиться из любого места, с любой платформы, будь то Web форма или приложение на C# \Delphi. Это лучше, чем для каждой отдельной программы\проекта писать код отправки Push сообщения напрямую через Apple и Google, уж тем более если платформа этого явно не поддерживает.
  2. Провайдер тебе не нужен, посмотри в статье которую я сегодня выложил, там есть этот момент. Когда приходит Push, вызывается отдельная функция, которая выводит Notification, вне зависимости от состояния программы (в фоне или запущена). На форме никакие провайдеры не нужны. Я там привёл полный рабочий код из проекта для Delphi.
  3. Ссылка на статью. Автор: Александр Бирюков В статья я максимально подробно попытался описать работу с PHP скриптом для рассылки Push сообщений из любой программы вне зависимости от платформы. Затрагивается вопроса от экспорта скриптов до кода программы: отправка и получение Push, регистрация устройств. Надеюсь кому-нибудь пригодится. Буду рад комментариям, обоснованной критике и доработкам.
  4. Для информации. Приложения собранные с исправлением от Сарины в xCode 6.4 + XE8.1 без проблем проходят в AppStore и публикуются. Ключ 41<key>NSAppTransportSecurity</key> 42<dict> 43 44 <key>NSAllowsArbitraryLoads</key> 45 <true/> 46</dict> Не использовал при публикации, хотя приложение и обращается к удалённому xml файлу. Публикация прошла успешно.
  5. В разделе загрузок в кабинете разработчика, там можно скачать старые версии xCode. Бывает приложение не запускается из Delphi студии, у меня начинает нормально работать, когда запущен PAServer и xCode, тогда и отладка запускается, и запуск приложения на устройстве срабатывает.
  6. Не совсем понятна схема взаимодействия приложения, сайта и магазинов. Для отправки пуша можно использовать приложение или форму с жёстко указанным API. Т.е. части магазинов будут настроены жёстко на указанные API ключи или пользователей. При каждой отправке можно проверять API ключи для доступа к рассылке и на основании значения ключа скрипт будет выбирать, кому делать рассылку.
  7. Тоже думал над подобной реализацией. В общем т.к. базу приходится заполнять токенами устройств. Т.е. получается для приложения, есть единая база, в которой собираются все данные из приложения (собираем токены, DeviceID) так же можно при регистрации устройства использовать логин пользователя, в дальнейшем для поиска токена, использовать логин. Таким образом получаем таргетированную доставку push сообщения. Если доставка нужна сразу все пользователям конкретного магазина, можно записывать в базу домен магазина, и из скрипта просто делать рассылку в соответствии с доменом. Т.е. есть база устройств, в которой есть записи с доменами example1.com, example2.com и т.д. При отправке сообщение просто выбираем нужных пользователей. При этом все могут использовать 1 скрипт, подавая ему разные параметры, например API своей фирмы и текст сообщения. А скриптом уже выстраивать логику работы.
  8. не пытайтесь "подвести" под ведро...) мак это дело тонкое... если не пробовали то лучше промолчать...). обратили внимание на нолики? там ведь в байтах передача... не как в ведре... если решу проблему сообщу, и тогда весь мир стекется к моему посту, т. к. не нашёл в инете решений на делфи... ну может есть на провайдерах... но хочу простоты. Как вариант, если не выйдет, то разместить php скрипт где нибудь на хостинге и отправлять через него, проблем с русским нет.
  9. так в чем косяк то был? Да он и остался. Первый пост про связку XE10 + xCode 7 + SDK 9. Каким чудом вам удалось запустить приложение из XE10 + xCode 7 + SDK 9 на устройстве с iOS8 мне постичь не удалось. Поэтому понизил до XE10 + xCode 6 + SDK 8.4. Но опять же, не запускаются приложения на iPhone 4S в режиме Release. В результате сейчас использую XE8.1 + xCode 6 + SDK 8.4 + изменённый FMX.Context.GLES.iOS.pas. Отправил приложение на проверку. Посмотрим, что скажут.
  10. Хммм. В общем сделал сборку XE10 + xCode 6 + SDK 8.4. Приложения собираются, запускаются всё ОК. Есть iPhone 4S (8.3) в режиме Debug приложение запускается в любой конфигурации. Если запустить в режиме Release, после запуска приложение вылетает. На эмуляторе всё работает ОК. На планшете iPad Mini 2 (8.2) тоже ОК. Вопрос, чем может быть связано? И будет ли если опубликовать работать на iPhone 4S если работает на эмуляторе?
  11. Спасибо БОЛЬШОЕ! Буду пробовать.
  12. вы пробовали Swift, например, там такие косяки есть, что в RAD так...детский лепет! к последнему swift надо прилагать толмут faq-ов на все случаи жизни. это к теме переходить или не переходить... ) Нет ну я конечно понимаю, всё познаётся в сравнении. Но я считаю с последними косяками Apple, с постоянными недоделками которые стали возникать + весь этот цирк с публикацией и пр. Просто я считаю, что коробочные версии продуктов должны быть более вылизанными. А не так, чтобы 5 часов коддинга и 120 часов шаманств с бубном наперевес.
  13. связка XE8.1 + xCode 6.4 SDK 8.4 у меня не прошла проверку в app store по причине того что приложение не запустилось на ios 9 также была проблема с http в ios 9 они рекомендуют использовать https протокол чтобы включить http параметры надо задавать в ручную в файле info.plist Хмммм, а вот тут можно поподробнее. Просто у меня приложение при запуске тоже делает запрос именно по http, именно это приложение зависло на заставке. А что конкретно надо изменить в info.plist? Связки XE10 + xCode 6.4 + SDK 8.4 это тоже касается?
  14. Да у меня тоже есть приложение с подгрузкой. Но в свете последних экспериментов столкнулся с кучей проблем во всех этих обновлениях. В результате сейчас пытаюсь проверить работу связки XE8.1 + xCode 6.4 SDK 8.4 + исправления от Сарины. Предыдущую версию без исправлений отклонили. Спасибо вам большое за подробные ответы.
  15. Спасибо за подробные ответы. Ещё вопрос, XE10 + xCode 6 + iOS9, на заставке приложение не зависало на устройстве?
  16. Тогда не совсем понятно: XE10 + iOS 6 = полёт нормальный XE10 + iOS 7 = полёт нормальный XE10 + iOS 8 = полёт нормальный Речь идёт об эмуляторе или проверке на реальных устройствах? Интересует запуск на реальных устройствах, поведение ПО. А что люди подумают? Подумают сначала, хотят ли они изобретать костыли при переходе или нет
  17. В этом видимо и причина. На устройствах стоит 8.2 и 8.3. Приложения сделанные в XE10 + xCode 7 (SDK9) вылетают на них.
  18. Странно.XE10 + iOS8 (iPhone 4S) - пустое приложение закрывается после заставки. XE10 + iOS9 (Эмулятор) - запускается без проблем. xCode 7. При этом приложение собранное в XE8.1 + xCode 6.4 быль отклонено, зависло на заставке на iOS9.
  19. И так, пока русскоязычная и англоязычная части интернета молчат по поводу работы в новой Delphi XE10 Seattle в связке с xCode 7, а компании представители описывают, какое замечательное вышло обновление, пользователи столкнулись с проблемой, что приложения, сделанные на XE10 Seattle, xCode 7 + SDK9, не запускаются на предыдущих платформах. Не совсем понятно, почему в упомянутых сегментах интернета нет совершенно никакой информации по данному поводу. Опять впереди планеты все Китай. Пользователь блога подробно описывает конфигурацию, на которой он тестировал запуск приложения и описание проблемы. Несколько реальных устройств на разных прошивках, разные версии ПО и пр. Коротко о главном. Если вы хотите, как можно скорей перейти на новую Delphi XE10 Seattle с целью писать свежие приложения\обновления для iOS, спешу вас разочаровать. Ваши программы перестанут работать на предыдущих версиях iOS. Статистика испытаний такова, что приложения собранные на XE10 Seattle, xCode 7 + SDK9 будут работать только на устройствах под управлением iOS9. Вторая проблема, состоит в том, что недавнего времени AppStore при проверке приложений стала проверять их именно на iOS 9, а приложения собранные на XE8.1 такую проверку не проходят, так как зависают на стартовой заставке приложения и как следствие их отклоняют. Вот так то. Прошла уже целая неделя, а интернет по данному поводу ничего сказать нам особо не может. На днях появилась статья от Сарины Дю Понт, о том, как всё же запустить приложение сделанные в XE8.1 на iOS9. В результате изысканий Китайских друзей, получаем на данный момент такую картину: XE8 + iOS 6 = полёт нормальный XE8 + iOS 7 = полёт нормальный XE8 + iOS 8 = полёт нормальный XE8 + iOS 9 = зависание на экране заставки (если не воспользоваться советом Сарины) XE10 + iOS 6 = приложение вылетает XE10 + iOS 7 = приложение вылетает XE10 + iOS 8 = приложение вылетает XE10 + iOS 9 = полёт нормальный Таким образом в XE10 Seattle и xCode 7 можно получить на данный момент только приложение, работающее на iOS9. Ждём Delphi XE10 Seattle Update 1. P.S. А в на Android в Delphi XE10 Seattle приложение с компонентами для отправки Push не запускается в режиме Release — Application Store. Что тоже, очень и очень печально.
  20. Да в общем-то под 10ку это не единственная проблема. Приложения не запускаются под iOS. В соседней ветке описал. Если использовать Delphi 10 + xCode 7 + SDK 9. То на выходе получаем приложение, которое не запускается на iOS 8.
  21. В 8.1 у меня отлично работает стандартный шаблон без каких либо исправлений. <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%"> <%application-meta-data%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <receiver android:name="com.embarcadero.firemonkey.notifications.FMXNotificationAlarm" /> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) -->
  22. Да с данным манифестом всё работало, хотя уже столько копий проекта, что мог запутаться.
  23. вы говорите все ок...но походу не так )) выложите манифест файл андроида...он важен для пушей, точнее туда дописывать надо права отдельно Я не говорю, что всё ОК. Я говорю, что всё, что вы писали я проверял. Проекты в которых РАБОТАЛИ и РАБОТАЮТ пуши, под Delphi 10 не запускаются, ровно так же, как и новые проекты с компонентом для работы с Push. <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="*" android:versionCode="1" android:versionName="1.0.0" android:installLocation="preferExternal"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <permission android:name="*.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="*.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="False" android:restoreAnyVersion="False" android:label="*" android:debuggable="False" android:largeHeap="False" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme" android:hardwareAccelerated="true"> <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" /> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="*" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="*" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" /> <receiver android:exported="true" android:name="com.embarcadero.gcm.notifications.GCMNotification" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="*" /> </intent-filter> </receiver> </application> </manifest> <!-- END_INCLUDE(manifest) -->
  24. Чистая установка. Установил Windows 7 x64, на неё поставил Delphi 10. Затем взял образ OS X Yosemite, установил туда xCode7 с SDK9. В результате всё, как и в прежних вариантах, та же ошибка. Вы проверяли данную конфигурацию. Работает она вообще? что то похожее Win8.1x64pro Yosemite 10.10(vmware) xcode6.4 PAserver16 XE8upd1 Login мака и конечно логин в xcode - девелопера(99$) сертификаты загружены за счет xcode Запускаю пасервер на маке без пароля(для чего инсталлятор под виндовс пока загадка) IOS Device32 работает норм Нет, студия 8.1 и xCode 6.4 у меня работают без проблем. Не работает Delphi 10 и xCode 7 с SDK9.
×
×
  • Создать...