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