[Aerogear-users] Unclear when to use setContentAvailable()

Rob Willett rob.aerogear at robertwillett.com
Thu Dec 3 13:40:46 EST 2015


Thanks for this. Are you referring to content-available flag or the 
setContentAvailable function?

We already send silent notifications out to our Android and Apple 
devices and the devices handle these correctly.

Our logic goes that we send a silent notification to the device via UPS, 
the device then connects to the server and pulls some data from the 
server. If our app is in the foreground, we set a tiny alert in the top 
left of the screen telling the user that something is ready for them, if 
our app is in the background we set a notification up in the drawer 
using a local-notification plugin, if the app is not started then the 
fact the app has not pulled data from the server acts as a flag and we 
then send down full notifications to the device. The local-notifications 
and the ‘full fat’ notifications all work the same way when the user 
clicks on them.

We have all of this is working now without setContentAvailable. Its much 
as you outlined below. I have two phones on my desk as we speak, an 
Apple and an Android and we are comparing how the notifications look as 
we ping different data down to them in different situations. We’re 
down to design looks now rather than programming :)

We’re just trying to work out how setContentAvailable fits into all of 
this, because we aren’t using it at all! Should we be?


On 3 Dec 2015, at 18:23, Matthias Wessendorf wrote:

> Hi,
> it's an iOS feature, that you can use for having the app download 
> something
> (or check state on your backend), before the alert is being made 
> visible to
> the end-user:
> https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/#Remote_Notifications_iOS_7_and_Greater
> Also (more interesting, I think) you can use it to send a slient 
> message to
> the device. E.g. when the app runs (fore/background) the callback is
> invoked. You can use that to check state on your own backend (a 30 
> second
> time window, you have for this), and if needed you could use that to, 
> for
> instance, issue something local e.g. local notifications (those are 
> better
> and more handy for several reasons e.g. better control of the badge 
> icon):
> https://developer.xamarin.com/guides/ios/application_fundamentals/backgrounding/part_3_ios_backgrounding_techniques/updating_an_application_in_the_background/#Silent_Remote_Notifications
> HTH,
> Matthias
> On Thu, Dec 3, 2015 at 7:01 PM, Rob Willett 
> <rob.aerogear at robertwillett.com>
> wrote:
>> Hi,
>> We now seem to have something approaching a stable and working UPS
>> configuration. (Famous last words!) Thanks to the Aerogear team for 
>> helping
>> resolve the background notifications on Android.
>> As we are tidying up, we noticed (ahem) that we had commented out a 
>> few
>> lines in our code.
>>  if (event['content-available'])
>>  {
>>      // Still not clear what to do with this.
>>      // push.setContentAvailable(1);
>>  }
>> We went back to the Aerogear docs and tried to work out what
>> setContentAvailable really does and what should we do with it. The 
>> docs for
>> the function call are a little sparse, so we looked at the source 
>> code and
>> we’re still no wiser.
>> Is there a better explanation of when we should call 
>> setContentAvailable
>> and with which parameter?
>> Just to set the ball rolling we *think* it could mean that when you
>> receive the content-available = 1 flag on iOS, we do a call to get 
>> some
>> data from the server ourselves, if the the results of *our* server 
>> call
>> indicate that we have received new data, we set the value to
>> setContentAvailable to 1, if our function call to the server has no 
>> data,
>> then we set it to zero and if something failed we set it to 2.
>> So what happens if the value is 0, 1 or 2? if its 2, is a new new 
>> call
>> made to something, if its 0 or 1 what happens?
>> Apologies if we’ve missed the point of it, but we’re struggling 
>> to
>> understand this.
>> Thanks,
>> Rob.
>> _______________________________________________
>> Aerogear-users mailing list
>> Aerogear-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-users
> -- 
> Matthias Wessendorf
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> twitter: http://twitter.com/mwessendorf
> _______________________________________________
> Aerogear-users mailing list
> Aerogear-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-users

More information about the Aerogear-users mailing list