Forge Component
Published on 2018-12-19 by OutSystems R&D
11 votes
Published on 2018-12-19 by OutSystems R&D

Hello all,

According to Pushwoosh team, the Pushwoosh SDK allows device coordinates to be automatically collected upon device registration. Unfortunately, they also informed us that this is not being done in the current version of the Pushwoosh Plugin.

So, my questions:

- Is this going to be considered in a reasonable timeframe?

- If not - and since this is a supported OutSystems plugin -, what can be done?



When you refer to the "Pushwoosh team"... do you mean the OutSystems team who wrote the Pushwoosh plugin wrapper?

I'm curious as to why you'd want a location when a device gets registered?

I'm not sure that it's a Pushwoosh related process... but rather... in the Javascript that calls device registration you'd get the current device location and pass it back along.  Is that what you'd like to do?

Hey David,

When I refer the "Pushwoosh Team" is, literally, the Pushwoosh Team ( I need the location since I want to send a specific notification to a given set of users based on their locations - geo-fencing, pretty much. According to the same, this is supported by the SDK during the device registration process.

Since this is a supported plugin, I want to query if changes are planned before doing any. 



I see... something like... I install the app, my device gets registered, and a notification is sent to all other registered devices within my area... is that right?

I've implemented PushWoosh quite a bit in other development environments... and I've had a quick look at the PushWoosh doc again.  I can't see where geolocation is part of the registration information.  Can you point me to that doc where it details "the Pushwoosh SDK allows device coordinates to be automatically collected upon device registration"?

Just to be clear... the PushWoosh Plugin is written by PushWoosh.  They would have to add any new features... or you (or someone) would need to fork the repo and make changes to the Android and iOS code.

OutSystems creates a wrapper for the Plugin... making calls to the Plugin methods.  OutSystems doesn't do anything to do the Plugin... they just call it... so it's not up to OutSystems to add functionality to the Plugin.

Sometimes, the OutSystems wrapper does not contain all the features that a Plugin has to offer... so in this case changes can be made (usually easily) to the wrapper to expose those Plugin features.  But if a feature is not in the Plugin... it can't be in the wrapper.

But, as mentioned, getting geolocation information is a simple PhoneGap Build Plugin call... and can be made during PushWoosh Device registration.

Hey Davidk,

Not my usecase but it's a similar example, yes.

About the device coordinates, this is the answer I got from Pushwoosh themselves:

"Yes, the Geozones functionality is available on mobile platforms only. If the Pushwoosh SDK is integrated properly, it’ll automatically collect the device coordinates. As a result, it’ll be possible to use them for sending a push to a certain geozone."

About the documentation, I'm not sure which methods they are referring but, based on the documentation, I would say startLocationTracking and stopLocationTracking. The part of doing it with registration of the device was a segmentation fault of my human memory. I'm sorry if that caused confusion.

About the Plugin (to be clear, OutSystems Mobile Plugin or the wrapper)... it was published by OutSystems R&D and it is supported. Also, on the plugin itself, the extensibility options redirect to, which seems very likely to be implemented (or approved) by OutSystems themselves. If they did it or not, that's a different question. Also I have older emails where Pushwoosh team asks me if I know if any new features are being added to the plugin. So it doesn't seem to be implemented by Pushwoosh. Still, not relevant at all. [This paragraph might come from the definition of Plugin and wrapper that we use].

My question is not about being "easy" or "hard" to do. I'm pretty sure that, if the SDK allows me to, I will be able to do it. My point is slightly different: this is a supported plugin, entitled for customer support. I would rather have a version "made" by the vendor who gives support - in this case, OutSystems - than having a version custom made by me. 

In different terms, my question could be: how does my changes affect the support given by OutSystems on this component?

Hope this makes it more clear.




Hello, Armando,

Regarding support for modified versions of this plugin, the short answer is no. If you modify the provided module, you will officially lose support entitlement and, additionally, will also lose the ability to update it via the OutSystems tab, on Service Studio.

However, we do admit that some of these cases are not black and white. Should you modify the plugin, but come across a bug which you suspect is not related to your changes, test the same scenario on the supported version and if the problem remains we will readily help.

Having said that, I had a peek at the repository of the plugin and found a definition for the startLocationTracking function. I haven't tested, but this probably means you can use the functionality, with minimal changes to the plugin. Provided using this function doesn't interfere with the rest of the plugin's functionality, you should still be covered by the support policy. Don't forget to do plenty of testing, however.

Best regards,

Carlos Simões


Hey Carlos,

Thanks for the answer. :)


Thanks... I'd forgotten that OutSystems had forked the PushWoosh Plugin and based their wrapper on their version of the plugin.

I believe this means you should be able to add a Client Action to the Wrapper... with the Javascript including this call... plugins.pushNotification.startLocationTracking(Success, Fail);

However, I have to ask... what does Official Support entail?  Only fixes for bugs?  Or... help with how to add existing plugin functionality to the wrapper?

I find wording for this stuff very confusing.  If I modify the Wrapper for the OutSystems PushWoosh Plugin... do I lose support?  Or do I lose support if I fork and modify the plugin (I would expect so)?