Kitty

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    16

Сообщения, опубликованные пользователем Kitty


  1. Цитата

    "Обо всем что касается программирования" или "Флудильня"?

    Я за ветку форума здесь с названием Флудильня (или еще как) помимо телеграмма. Конкретно на этом форуме отдельный раздел... Очень его не хватает...

    Пусть туда флуд сыпется... Опыт показывает, что в таком разделе самородки (или вкрапления золота :) ) маленькие всегда находятся... и решают вопросы...

    Изначально Ярослав очень строго организовал форум и это правильно, но мы все скатываемся рано или поздно во флудильню, устроен так человек... Такой раздел нужен на форуме для таких как мы..., а нас не опытных большинство. :)

    Ну это модераторам решать.


  2. Цитата

    Одни и теже темы и вопросы поднимаются 500 раз (Инга, Анатолий, Лена, такое ощущение что это один человек ;))

    Вообще то Инга моя сестра, а что есть ответы на вопросы которые поднимались 500 раз? Нет, ответов нет.


  3. Спасибо.

    Не до конца понятно... Несколько разных мнений и рекомендаций... Можно показать на паскале единственно правильное решение для службы андроида, где делаеться отсечка времени в 60 минут для сработки события.

    Спасибо.

    Ingalime понравилось это

  4. Появилась статья рассказывающая как подключить сервис для Андроида созданного на паскале к приложению созданному в С++ Builder.  Сервис естественно на паскале, хотелось бы сразу правильно начать его модернизировать, а то много времени приходиться тратить на понимание синтаксиса. Опыта создания сервисов для Андроида нет, поэтому возник вопрос... Есть стандартный пример нужного сервиса, который я подключаю к своему приложению:
    C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidBeaconServiceDemo
    В сервисе есть процедура, которая срабатывает когда устройство входит в зону действия маячка beacon:
    procedure TBeaconServiceDM.Beacon1BeaconEnter(const Sender: TObject; const ABeacon: IBeacon; const CurrentBeaconList: TBeaconList);
    Я хочу, чтобы эта процедура если сработала, то следующее ее срабатывание стало бы возможно только через 60 минут. Для этой цели планирую завести, в этом сервисе на паскале, глобальную переменную bool и менять ее в таймере. Вопрос такой – правильно ли использовать в сервисе для Андроид компонент TTimer и вообще правильный ли мой подход? Если нет, то как правильно для Андроид сервиса? Спасибо.

     


  5. Вспомнила, что об этом уже говорил master webs:

    http://fire-monkey.ru/topic/2734-вызов-приложения-из-нофитикейшена/?do=findComment&comment=17497

    Просьба проголосовать ибо это касается дельфи, а телефонов с андроид 4.4 много у пользователей:

    https://quality.embarcadero.com/browse/RSP-18117

    Возможно не работает и  версии Андроид 5, но такого устройства под рукой нет, чтобы проверить...

     

    Andrey Efimov понравилось это

  6. Есть маячок бикон iBKS 105. Любое приложение скаченное с Google Play по определению маячков прекрасно его определяет.

    Пытаюсь использовать стандартный пример с сервисом, и открываю его в Дельфи:

    C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidBeaconServiceDemo

    Успешная компиляция в Дельфи и запуск на планшете Андроид 4.4, однако это приложение не определяет мой бикон. Приложения с Google Play его определяют без проблем.

    Подскажите, пожалуйста, в чем может быть проблема и куда копать?

     

     


  7. Теперь вроде понятно про разбиение строк, помогло наблюдение... Переноса строк нет если в шторке присутствуют уведомления от других приложений. Если уведомление в штока одно, то есть перенос строк. Это на моём устройстве.


  8. Нажимаю кнопку для открытия формы с  TWebBrowser:
    FormWEB = new TFormWEB(this);                        
    FormWEB->WebBrowser1->Navigate(L"http://моя ссылка");
    FormWEB->Show();
    Вижу в метке слово Загрузка, а когда страница загружена метка становиться пустой. Все нормально.
    Если уже в открытой странице в окне TWebBrowser есть гиперссылка и нажать на нее, то в метке уже не наблюдается слово Загрузка.
    Как при нажатии ссылки в самом TWebBrowser, показать в метке процесс загрузки?

    void __fastcall TFormWEB::WebBrowser1DidFinishLoad(TObject *ASender)
    {
     Label1->Text = L"";
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TFormWEB::FormShow(TObject *Sender)
    {
     Label1->Text = L"Загрузка...";
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TFormWEB::WebBrowser1DidStartLoad(TObject *ASender)
    {
     Label1->Text = L"Загрузка...";
    }

     


  9. Может на этом форуме найдется специалист по PHP чтобы снять ограничение на 1000 устройств? Просто тут многие занимались пушами.

    Евгений Корепов, предлагал свой вариант, но как его адаптировать и правильно интегрировать в сервер из блога Равиля?

    function SendGCMMessagesPacket($apiKey, $DevicesTokenArray, $message, $title, $DBLink, $TableName, $MyLog_GCM_file) {
    	if (count($DevicesTokenArray)==0) {
    		MyLog($MyLog_GCM_file, "Count Devices Token Array is 0, skip sending");
    		return(0);
    	}
    	$Count_Success = 0;
    	$DeviceCountMax = 1000;
    	$DeviceCountIndex = 0; 
    	$DevicesTokenPacketArray = array();
    	$gcpm = new GCMPushMessage($apiKey);
    	while ($DeviceCountIndex<=count($DevicesTokenArray)) {
    		$DevicesTokenPacketArray = array_slice($DevicesTokenArray, $DeviceCountIndex, $DeviceCountMax);
    		MyLog($MyLog_GCM_file, "Packet send: start index $DeviceCountIndex,  count ".count($DevicesTokenPacketArray));
    		$gcpm->setDevices($DevicesTokenPacketArray);
    		$ResponceJSON = $gcpm->send($message, array('title' => $title));
    		$Count_Success = $Count_Success + AnalyzeResponse($DevicesTokenPacketArray, $ResponceJSON, $DBLink, $TableName, $MyLog_GCM_file);
    		MyLog($MyLog_GCM_file, $ResponceJSON);
    		$DeviceCountIndex = $DeviceCountIndex + $DeviceCountMax;			
    //		sleep(1);
    	}
    	return($Count_Success);	
    }

     


  10. С чем может быть связано, что не с того ни с сего перестал работать перенос строк в пуше в андроиде?
    ***method=sendPush&title=Микрос&text=Текст текст текст текст текст текст текст
    Причем вчера работало как надо.
    Также периодически игнорируется заголовок и пишется вместо него название приложения. На что обратить внимание? Спасибо.


  11. Вроде все сделал как надо. Тестирую на стенде где было собрано давно нормальное приложение. Теперь добавляю приложение с пушами... и не работает...

    Теперь или баг С++ Builder или моя тупость при работе с ios...

    123.jpg


  12. Цитата

    Китти, сори за off top, но, мне кажется, ты бы обошлась меньшей кровью, если бы уже перешла на дельфи))).

    А зачем? Все работает и на С++. Был баг. Его решили. Равиль помог определить и суппорт быстро решил. А что в делфи багов нет? Из-за бага менять язык? Нет.


  13. И снова наш любимый ios для домохозяек...:)
    Нормально запустить дебаг не получается так как все время: Session ended
    Однако с помощью лейбл имеем такое:

    FDeviceToken = FPushService->DeviceTokenValue[TPushService_TDeviceTokenNames_DeviceToken];
    //добавлено для теста
    Label1->Text = L"Что тут? " + FDeviceToken;
    и видим что FDeviceToken пустой.

    Куда копать? Спасибо.

     

     

     


  14. В общем все нормально и заголовок и перенос текста работает. Видимо один раз был сбой, но это совсем не проблема.

    Спасибо за статью! Все работает и пуши живут теперь и в билдере. :D

    P.S.

    На будущее по возможности напишите понятную статью, а как обойти ограничение на 1000 пользователей. :)

    А так все работает. Только отменила ShowMessage(aText) на посылку Notification, а то два подряд ShowMessage не очень. :)


  15. 2 минуты назад, Равиль Зарипов (ZuBy) сказал:

    а что конкретно сделала? подключила fmx.jar?

     

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

    А как правильно сформировать ссылку?

    {"status":"ERROR","text":"Параметр `title` не передан"}


  16. Что-то не получается перенос строк в пуш уведомлении. Сделала как в последнем посте темы:

    перенос строк

    А строки в этом проекте не переносятся.

    А еще вопрос, можно послать пуш без заголовка?

    Спасибо.


  17. Если при открытом приложение срабатывает два раза OnReceiveNotificationEvent, может заменить ShowMessage тоже на сообщение в шторку? Вторая сработка чистит первую и со стороны вроде работает для пользователя:

    void __fastcall TForm1::OnReceiveNotificationEvent(TObject *Sender,
    	TPushServiceNotification* const ANotification)
    {
    
     ClearAllNotification();
    
     const String FCMSignature = L"gcm.notification.body";
     const String GCMSignature = L"message";
     const String APNsSignature = L"alert";
     String aText = "";
     TJSONValue * aObj;
    
    	#if defined(__ANDROID__)
    		aObj = ANotification->DataObject->GetValue(GCMSignature);
    		if(aObj != NULL)
    		   {
    			aText = aObj->Value();
    		   }
    		   else
    			  {
    			   aText = ANotification->DataObject->GetValue(FCMSignature)->Value();
                  }
    	#endif
    
    	#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__))
    	  aObj = ANotification->DataObject->GetValue(APNsSignature);
    	  if (aObj != NULL)
    	   {
    		aText = aObj->Value();
    	   }
         #endif
    
     //ShowMessage(aText);
    
     //шлем Notification
     if (NotificationCenter1->Supported() && aText != "")
      {
       TNotification * myNotification = NotificationCenter1->CreateNotification();
    
    	__try
    	{
         NotificationCenter1->CancelAll();
    	 myNotification->AlertBody = aText;
    	 NotificationCenter1->PresentNotification(myNotification);
    	}
    	__finally
    			{
    			 myNotification->DisposeOf();
    			}
      }
    
    }

     


  18. Проект нормально компилировался в режиме дебаг. При переходе в режим релиз возникла ошибка на картинке. Затем сдела Build All и снова попробовала запустить - ошибка пропала. С чем это может быть связано, на что обратить внимание?

     

     

    java.jpg


  19. Подскажите, пожалуйста, в чем может быть дело? В базе вижу одну запись.

    Отправила пуш в строке браузера ({"status":"OK"}) и код ниже почему-то отработал два раза и я получила два одинаковых друг за другом ShowMessage? :o

    void __fastcall TForm1::OnReceiveNotificationEvent(TObject *Sender,
    	TPushServiceNotification* const ANotification)
    {
    
     const String FCMSignature = L"gcm.notification.body";
     const String GCMSignature = L"message";
     const String APNsSignature = L"alert";
     String aText = "";
     TJSONValue * aObj;
    
    	#if defined(__ANDROID__)
    		aObj = ANotification->DataObject->GetValue(GCMSignature);
    		if(aObj != NULL)
    		   {
    			aText = aObj->Value();
    		   }
    		   else
    			  {
    			   aText = ANotification->DataObject->GetValue(FCMSignature)->Value();
                  }
    	#endif
    
    	#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__))
    	  aObj = ANotification->DataObject->GetValue(APNsSignature);
    	  if (aObj != NULL)
    	   {
    		aText = aObj->Value();
    	   }
         #endif
    
     ShowMessage(aText);
    
    }

    А если приложение выгрузить и послать пуш, то в шторке одно уведомление как и положено...