<div dir="ltr">In the ionic app when do you do the registration of UPS ? on the platformReady event ? </div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 16, 2015 at 4:54 PM, Rob Willett <span dir="ltr"><<a href="mailto:rob.aerogear@robertwillett.com" target="_blank">rob.aerogear@robertwillett.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Erik,<br>
<br>
We have built the simplest possible app we can that uses the Aerogear<br>
push plugin but using the ionic tabs starter kit.<br>
<br>
<a href="http://ionicframework.com/getting-started/" rel="noreferrer" target="_blank">http://ionicframework.com/getting-started/</a><br>
<br>
We have taken the code directly from the Cordova simple app that we have<br>
got working and put it into the Ionic app.<br>
<br>
if we follow your tests as below:<br>
<br>
1. IOS App in foreground, we send a simple push notification from the<br>
Aerogear console - Works OK, We can see the event. Good<br>
<br>
2. IOS App in background, we send a simple push notification from the<br>
Aerogear console - Works OK, We can see the event. Good<br>
<br>
3. IOS App killed, we send a simple push notification from the Aerogear<br>
console and some of the time when we click on the notification in the<br>
notification drawer we do NOT get the notification handler called. Not<br>
so good<br>
<br>
However it does appear to work most of the time with our minimal Ionic<br>
app, but some of the time it fails. We had a run of 1 in 2 failures when<br>
we click on the notification. Now we have just done 20 runs in a row,<br>
each time killing the app after receiving the notification and not a<br>
single failure. Nothing changed.<br>
<br>
We cannot find any obvious reason for this so we are still<br>
investigating.<br>
<br>
We have reconfigured our main app to work the same way as the minimal<br>
app but we are still getting the same issues as before, we can see the<br>
notification in the drawer but clicking on it does NOT call the same<br>
handler with the same code as the minimal app. We get zero calls to the<br>
notification event handler.<br>
<br>
We are wondering if there is a timing issue somewhere in our code, but<br>
we can’t see it. We also wondered if the size of the code we are<br>
loading is the cause of a timing issue as well.<br>
<br>
Is there any way of adding more debugging into the Aerogear push plugin<br>
to see if we can track things down that way?<br>
<br>
Its very frustrating, but thanks for your help to date. It does look<br>
like its an interaction with our code, Ionic and the Aerogear plugin. My<br>
money is on our code though. We’ll now start pulling working code out<br>
of our app until we get back to the minimal app. Only 18,604 lines to go<br>
:)<br>
<span class=""><br>
Rob<br>
<br>
On 15 Dec 2015, at 10:36, Erik Jan de Wit wrote:<br>
<br>
</span><div><div class="h5">> Hi Rob,<br>
><br>
> That would be a bug, although I can not reproduce it, to test it this<br>
> is<br>
> what I've done to test it:<br>
> $ > cordova create push-test <my bundle id><br>
> $ > cordova platform add ios<br>
> $ > cordova plugin add aerogear-cordova-push<br>
><br>
> copy paste your js code into www/js/index.js onDeviceReady, changed<br>
> pushServerUrl and variant info and changed quotes to " (this is your<br>
> email<br>
> client no doubt) and changed : into ; after console.log("Success")<br>
><br>
><br>
> Attach Safari debugger and send a message when the app is in the<br>
> foreground<br>
> and get in the console:<br>
><br>
> HandleAeroGearNotification: event =><br>
> {"alert":"test","foreground":true,"coldstart":false,"sound":"default","badge":-1,"payload":{}}<br>
><br>
> I press the home button and send the app to the background send<br>
> another<br>
> message and 'touch' the message to launch the app:<br>
><br>
> HandleAeroGearNotification: event =><br>
> {"alert":"background","foreground":false,"coldstart":false,"sound":"default","badge":-1,"payload":{}}<br>
><br>
> The I kill the app by pressing home twice and swiping over the app to<br>
> remove it send another message and 'touch' it to launch the app. This<br>
> kills<br>
> my safari debugger so no way to see the console log, but in this case<br>
> coldstart should be true. To test this better changed the code to<br>
> alert<br>
> instead of console:<br>
><br>
> function HandleAeroGearNotification(event) {<br>
> alert("HandleAeroGearNotification: event => " + event.coldstart);<br>
><br>
> // Stuff cut for clarity<br>
> }<br>
><br>
> I send another notification 'touch' it to launch the app and see the<br>
> alert<br>
> box display the text:<br>
><br>
> HandleAeroGearNotification: event => true<br>
><br>
> Hope this helps<br>
><br>
><br>
><br>
> On Mon, Dec 14, 2015 at 10:20 PM, Rob Willett <<br>
> <a href="mailto:rob.aerogear@robertwillett.com">rob.aerogear@robertwillett.com</a>> wrote:<br>
><br>
>> Hi,<br>
>><br>
>> We think we have found a possible bug in the Aerogear Cordova 2.0.4<br>
>> push<br>
>> plugin specifically on the iOS side.<br>
>> Summary<br>
>><br>
>> We have two versions of our app, an Android and an IOS version. Both<br>
>> use<br>
>> the latest Cordova push plugin 2.0.4. They also both have the latest<br>
>> Cordova platforms, android 4.1.1, ios 3.9.2. Both the iOS and Android<br>
>> versions are compiled at the same time. We are running cordova 5.3.3<br>
>> with<br>
>> Ionic 1.7.8 (?).<br>
>><br>
</div></div>>> 1.<br>
<span class="">>><br>
>> We make sure that both apps are NOT started up on each device. We<br>
>> also<br>
>> check they are NOT in the background.<br>
</span>>> 2.<br>
<span class="">>><br>
>> We send the same simple notification to each device. This<br>
>> notification<br>
>> config is as below, we have anonymised the variants and alias in this<br>
>> JSON<br>
>> structure, though we can report that the UPS server sends the data<br>
>> correctly. We use the additionalData flag to provide the information<br>
>> necessary to decide which notification has been clicked in the<br>
>> notification<br>
>> drawer.<br>
>><br>
>> 'variants' => [‘variant1’,’variant2’ ],<br>
>> 'message' => {<br>
>> 'additionalData' => { 'Disruption_Id' => '107546',<br>
>> 'EpochTime' => '1450125268'<br>
>> },<br>
>> 'alert' => 'Cannon Street (EC4N) (All Directions) at the junction of<br>
>> King William Street - To facilitate a heavy lift in Cannon Street,<br>
>> Cannon Street will be closed. Traffic is slow moving on diversion.'<br>
>> },<br>
>> 'alias' => [ ‘alias1’ ],<br>
>> 'ttl' => 600<br>
>> };<br>
>><br>
>><br>
</span>>> 1.<br>
<span class="">>><br>
>> Both devices show the message, the Android device stacks the message<br>
>> and the iOS device display an individual message. This looks correct.<br>
</span>>> 2.<br>
<span class="">>><br>
>> Clicking on the Android stacked message starts up the app and the<br>
>> Javascript notification handler we have defined,<br>
>> HandleAeroGearNotification<br>
>> is called<br>
>><br>
>> HandleAeroGearNotification: event => {"alert":"Cannon Street (EC4N)<br>
>> (All Directions) at the junction of King William Street - To<br>
>> facilitate a heavy lift in Cannon Street, Cannon Street will be<br>
>> closed. Traffic is slow moving on<br>
>> diversion.","coldstart":true,"foreground":true,"payload":{"alert":"Cannon<br>
>> Street (EC4N) (All Directions) at the junction of King William Street<br>
>> - To facilitate a heavy lift in Cannon Street, Cannon Street will be<br>
>> closed. Traffic is slow moving on diversion.","badge":"-1"}}<br>
>><br>
>><br>
</span>>> 1.<br>
<span class="">>><br>
>> Clicking on the notification in the notification drawer on the iOS<br>
>> device also starts our app up correctly but the notification handler,<br>
>> HandleAeroGearNotification(), is NOT called. The app starts up as<br>
>> normal as<br>
>> if the notification had not been clicked. We would expect the<br>
>> notification<br>
>> handler to be called in iOS as it is in Android.<br>
</span>>> 2.<br>
<span class="">>><br>
>> All notifications are cleared on both Android and iOS correctly when<br>
>> the app is started up.<br>
</span>>> 3.<br>
<div class="HOEnZb"><div class="h5">>><br>
>> We define HandleAeroGearNotification as<br>
>><br>
>><br>
>> var aeroGearPushConfig = {<br>
>> pushServerURL: "<a href="https://push-jambuster.rhcloud.com/ag-push/" rel="noreferrer" target="_blank">https://push-jambuster.rhcloud.com/ag-push/</a>",<br>
>> ios: {<br>
>> variantID: “variantid_obscured”,<br>
>> variantSecret: “variant_secret_obscured”<br>
>> } ,<br>
>> android: {<br>
>> senderID: "variantid_obscured" ,<br>
>> variantID: "variant_id_obscured" ,<br>
>> variantSecret: "variant_secret_obscured"<br>
>> } ,<br>
>> sendMetricInfo: true,<br>
>> alias: alias1<br>
>> };<br>
>><br>
>> function HandleAeroGearNotification(event) {<br>
>> console.log(“HandleAeroGearNotification: event => “ +<br>
>> JSON.stringify(event));<br>
>><br>
>> // Stuff cut for clarity<br>
>> }<br>
>><br>
>> // Slightly simplified registration event.<br>
>> push.register(HandleAeroGearNotification , function () {<br>
>> console.log(“Success”):<br>
>> } , function () {<br>
>> console.log(“Failure”);<br>
>> } , aeroGearPushConfig);<br>
>><br>
>> We cannot see any reference to this issue in the JIRA database and<br>
>> wondered if it is a bug or not.<br>
>><br>
>> If its a bug we are happy to raise it accordingly.<br>
>><br>
>> Please let us know,<br>
>><br>
>> Thanks<br>
>><br>
>> Rob<br>
>><br>
>> _______________________________________________<br>
>> Aerogear-users mailing list<br>
>> <a href="mailto:Aerogear-users@lists.jboss.org">Aerogear-users@lists.jboss.org</a><br>
>> <a href="https://lists.jboss.org/mailman/listinfo/aerogear-users" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-users</a><br>
>><br>
>><br>
><br>
><br>
> --<br>
> Cheers,<br>
> Erik Jan<br>
> _______________________________________________<br>
> Aerogear-users mailing list<br>
> <a href="mailto:Aerogear-users@lists.jboss.org">Aerogear-users@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/aerogear-users" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-users</a><br>
<br>
_______________________________________________<br>
Aerogear-users mailing list<br>
<a href="mailto:Aerogear-users@lists.jboss.org">Aerogear-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-users" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-users</a><br>
</div></div></blockquote></div><br></div>