Перейти к содержанию

Вся активность

Лента обновляется автоматически     

  1. Сегодня
  2. Ты просто капитальный красавчик Уже пару часов не мог понять что не так)
  3. Будет ли что-то подобное для android firemonkey?
  4. Вчера
  5. привет! как можно программно узнать данные железа ?
  6. И какие будут предложения ? Мне бы любой рабочий вариант, дабы запустить это сайт локально, под Андроид и иОС, желательно в Делфях. Неучто нельзя придумать альтеративу Cordova и PhoneGap ?
  7. Подскажите, в FMX есть ли возможность определить текущий url загруженной в WebBrowser страницы? Если я открываю страницу WebBrowser.Url := 'site.com', а затем лажу по этому сайту и кликаю, например, на категорию category1, то как програмно определить этот новый урл site.com/category1?
  8. Последняя неделя
  9. Идея не верна! Лучше отказаться от этой затеи!
  10. Есть некий сайт, набор html, js и css файлов, всё это успешно работает под Apache Cordova через WebView на Андроид. Хочу запустить его на Delphi, через TWebBrowser, но, если открыть index.hml через file:// то JS скрипты не получат доступа к локальным файлам, собственно тоже самое происходит и на ПК. Выход вижу таким: поднять свой HTTP сервер и к нему подключаться из TWebBrowser, если моя идея верна, собственно вопрос: На чём поднять Web сервер под Андроид ? P.S. Delphi CE (10.3)
  11. Нашел причину, В недрах класса TPushService TPushService = class abstract public type TPropPair = TPair<string, string>; TPropArray = TArray<TPropPair>; // commonly used names TServiceNames = record public const GCM = 'gcm'; // deprecated 'Is not available anymore. Please use FCM instead'; // Google cloud messaging FCM = 'fcm'; // Google Firebase cloud messaging APS = 'aps'; // Apple end; Соответственно нужно исправить FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); на FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM); Все работает
  12. Не могу одолеть пуши при компиляции приложения в 10.4 Вот стандартный код unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, System.PushNotification, System.JSON, System.Net.HTTPClient, System.Threading,REST.Types {$IFDEF ANDROID}, FMX.PushNotification.Android, FMX.Memo.Types{$ENDIF} {$IFDEF IOS}, FMX.PushNotification.IOS{$ENDIF}; type TForm1 = class(TForm) MemoLog: TMemo; procedure FormCreate(Sender: TObject); private FDeviceID: string; FDeviceToken: string; FPushService: TPushService; FPushServiceConnection: TPushServiceConnection; procedure OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification); procedure OnServiceConnectionChange(Sender: TObject; AChange: TPushService.TChanges); procedure PushServiceRegister; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.fmx} const FAndroidServerKey = '13648316531'; procedure TForm1.OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification); const FCMSignature = 'gcm.notification.body'; GCMSignature = 'message'; APNsSignature = 'alert'; var aText: string; aObj: TJSONValue; begin // это событие срабатывает при открытом приложении {$IFDEF ANDROID} aObj := ANotification.DataObject.GetValue(GCMSignature); if aObj <> nil then aText := aObj.Value else aText := ANotification.DataObject.GetValue(FCMSignature).Value; {$ELSE} aObj := ANotification.DataObject.GetValue(APNsSignature); if aObj <> nil then aText := aObj.Value; {$ENDIF} ShowMessage(aText); end; procedure TForm1.OnServiceConnectionChange(Sender: TObject; AChange: TPushService.TChanges); begin if (TPushService.TChange.DeviceToken in AChange) and Assigned(FPushServiceConnection) then begin FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; MemoLog.Lines.Add('DeviceID - '+ FDeviceID); MemoLog.Lines.Add('DeviceToken - '+ FDeviceToken); end; end; procedure TForm1.PushServiceRegister; begin FPushService := nil; FPushServiceConnection := nil; {$IF defined(ANDROID)} FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := FAndroidServerKey; {$ENDIF} {$IF defined(IOS) AND defined(CPUARM)} FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS); {$ENDIF} if Assigned(FPushService) then begin FPushServiceConnection := TPushServiceConnection.Create(FPushService); FPushServiceConnection.OnChange := OnServiceConnectionChange; FPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; FPushServiceConnection.Active := true; FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; MemoLog.Lines.Add('DeviceID - '+ FDeviceID); MemoLog.Lines.Add('DeviceToken - '+ FDeviceToken); end; end; procedure TForm1.FormCreate(Sender: TObject); begin PushServiceRegister; end; end. При регистрации пуш-сервиса строка FPushService.AppProps[TPushService.TAppPropNames.GCMAppID] := FAndroidServerKey; вызывает Segmentation Fault (11) В 10.3 тот же самый код работает, дебаг ничего не дает, проваливаюсь в процедуру procedure TPushService.SetAppProp(const AName, AValue: string); begin FAppProps.AddOrSetValue(AName, AValue); end; а внутрь AddOrSetValue уже не идет, сразу ошибка. Если кто сталкивался, помогите плиз
  13. Delphi 10.4 При попытки компиляции под Android выдает такое сообщение "Unit FMXTee.Canvas was compiled with a different version of System.SysUtils.FreeAndNil", под Windows все нормально. Что может быть? Куда копать? Причем такая ошибка только в Debug конфигурации, в Release все нормально.
  14. а откуда у вас там адресная строка и навигация? или вы даже не смотрели?
  15. Скажите пожалуйста, вы решили этот вопрос и как? Пришлите мне, пожалуйста, пример.
  16. Здравствуйте. Пытаюсь написать первое приложение под Андроид на Delphi. Посмотрел примеры, пособирал, всё работает. Задача такая: Есть некое готовое приложение под Андроид, внутри APK файла которого есть папка assets/www и внутри неё сайт (index.hml, куча JS и css файлов). Всё, что делает приложение, это запускает index.html в WebView. Я хочу сделать тоже самое в своём приложении, подскажите, если можно с примером, что мне для этого нужно ? Я не нашёл ничего похожего на TWebView, понятно дело, что можно использовать TWebBrowser, просто мне не нужны ни адресная строка, ни какие либо ещё функции навигации, всё что нужно, это запихать папку assets в мой APK и открыть из неё index.html в WebView.
  17. Ещё раньше
  18. У кого нибудь вышло это сделать
  19. в общем немного некорректно описание на сайтах про это ограничение... Если я правильно понял это ограничение для ОДНОВРЕМЕННО открытых файловых дескрипторов... И да, я забыл переменную освободить... Набежало 1024 файла открытых все стало. А при увеличении лимита память заканчивалась примерно на тех же 1024 файлах ) Тема закрыта.
  20. Пишу что то типа файлового менеджера. Передаю файлы с linux на windows станцию. Как только лимит открытых файлов на мой процесс достигает 1024 все перестает работать... Пробовал расширять лимит редактируя /etc/security/limits.conf, безрезультатно. Теже 1024 файла, причем при проверке текущего лимита показывает лимит в 65353 который указан в limits.conf. Как победить? Варианты есть ?
  21. Vitaldj

    Unable to create process

    В РИО глюк с Каталиной, там надо что то править, сходу не скажу. Это поправили в 10.4
  22. У меня аналогичная проблема 1. компилю на Delphi RIO для Catalina. 2. есть (EV) Code Signing от Verising, им на win подписываю, а на маке непонятно куда его применить. 3. прямая компиляция на 64 бита упорно недоступна: 4. на 32битной настраиваю на 64 бита 5. Test connection срабатывает 6. компиляция завершается таким сообщением всё перечитал, не знаю куда рыть далее, помогите кто в курсе! ранее на 32битные мак делал приложения, а на 64ю как запустить? И как правильно сертификат оформить, кто в курсе, EV Code sign применяли?
  23. 1. Зачем базу хардкодить в апк? байэир никак? 2. Если захотите денег купите bass или возьмете другое? (какое указать:) )
  24. мобильная андроид версия плеера, предназначенная для установки на смартфоны, планшеты, медиаприставки, смарт TV и т.п. APK установщик Goggle Play русскоязычный караоке плеер.для проигрывания плееру необходим доступ к сети интернет. в базе плеера собрано более 100 000 караоке песен!- миди караоке,- караоке с бэк вокалом с дисков: LG, Samsung, BBK- зарубежное CDG караоке- профессиональное минусовое MP3 (EMP) караокев плеере имеется возможность поиска караоке песен по автору, названию песни, тексту песни, возможность указать свои любимые песни для быстрого дальнейшего поиска. поддерживается голосовой ввод. так же доступен вариант локального проигрывания караоке: KAR, CDG, MP3+LRC, KFN
  25. hints: TDictionary<TDecodeHintType, TObject>; l: TList<TBarcodeFormat>; begin if not Assigned(FScanManager) then begin hints := TDictionary<TDecodeHintType, TObject>.Create(); l:=TList<TBarcodeFormat>.Create; l.Add(TBarcodeFormat.QR_CODE); hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l); FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints); не тестил
  26. Вопрос по ZXing. А можно ли как-то ограничить количество проверяемых форматов штрихкодов. Он в режиме auto не всегда стабильно работает. Мне нужно проверять всего 2 вида штрикода EAN13 и CODE_39, но как я понят там только или "Авто" или один конкретный формат можно указать, по крайней мере я не смог найти как туда подсунуть лист форматов. Если кто решил эту проблему, подскажите пожалуйста.
  27. спасибо, ща попробую разобраться...
  28. От Сих и до Сих увеличиваете размер матриц?
  1. Загрузить ещё активность
×
×
  • Создать...