On Wed, Jul 17, 2013 at 9:03 PM, Yavuz Selim YILMAZ <yavuzsel@buffalo.edu> wrote:


---
Yavuz Selim Yilmaz
SUNY at Buffalo
Computer Science and Engineering
PhD Candidate

On Jul 17, 2013, at 2:52 PM, Matthias Wessendorf <matzew@apache.org> wrote:




On Wed, Jul 17, 2013 at 8:29 PM, Yavuz Selim YILMAZ <yavuzsel@buffalo.edu> wrote:


---
Yavuz Selim Yilmaz
SUNY at Buffalo
Computer Science and Engineering
PhD Candidate

On Jul 17, 2013, at 2:08 PM, Matthias Wessendorf <matzew@apache.org> wrote:




On Wed, Jul 17, 2013 at 7:58 PM, Matthias Wessendorf <matzew@apache.org> wrote:



On Wed, Jul 17, 2013 at 7:06 PM, Yavuz Selim YILMAZ <yavuzsel@buffalo.edu> wrote:


---
Yavuz Selim Yilmaz
SUNY at Buffalo
Computer Science and Engineering
PhD Candidate

On Jul 17, 2013, at 11:53 AM, Matthias Wessendorf <matzew@apache.org> wrote:




On Wed, Jul 17, 2013 at 5:44 PM, Yavuz Selim YILMAZ <yavuzsel@buffalo.edu> wrote:


---
Yavuz Selim Yilmaz
SUNY at Buffalo
Computer Science and Engineering
PhD Candidate

On Jul 17, 2013, at 11:32 AM, Matthias Wessendorf <matzew@apache.org> wrote:

On iOS we recommend doing the registration (with UP server) on the "didRegisterForRemoteNotificationsWithDeviceToken" callback:




Is it guaranteed that device token is received BEFORE successful login? What if registration with APNs fails?


a different APNs callback is invoked (application:didFailToRegisterForRemoteNotificationsWithError)

Yes, but in that case, ProDoctor still registers the device to the Push EE server (with nil device token afaik). Is it an expected behavior?

not really :-)
If APNs fails initially, there should be no registration with the UnifiedPush Server. The metadata, without an APNs deviceToken (where it is 'nil') is pretty much useless :-)

I filed a bug, based on your comment :)

\o/



-Matthias

 
 

And my 1st question refers to this scenario:
Application successfully registered with APNs, but the delegate called AFTER the successful login (I was asking about the time guarantee of APNs registration),

What delegate do you mean?
The "didRegisterForRemoteNotificationsWithDeviceToken" delegate is called right away, regardless of what the first screen does (e.g. offering a login screen).

Yes, I'm talking about "didRegisterForRemoteNotificationsWithDeviceToken" method. My question is, how much time are you referring with "right away"? Can there be some APNs delays (or something which delays this delegate call) which will cause Push EE device registration with nil device token (or no registration after bug fix)?

Perhaps, but most-likely only when your app (e.g. AeroDoc) is the FIRST app on the iOS device that uses APNs.
After installing the first, there is a persistent connection to the APNs server, when ever you have 3G/Data.


I *think* if there is NO connection (to 3G/Data), the callbacks are not invoked

 
Let me give a numerical example:

t=0 app is launched
t=10 user tapped login button with valid username and password
t=11 user is logged in successfully
t=11.x [self deviceRegistration]; is called (device token is nil)

no registration will happen:

(Let me close the previous bug :-)) 
 
t=11.x+n didRegisterForRemoteNotificationsWithDeviceToken is called (registered to APNs successfully and device token is stashed)

In this case, device will not be successfully registered to Push EE as far as I could see.

nope, no registration at all :)

(also, if you kill and re-start the app a few times, a lot of "registration" agains PushEE are performed, to "update" the metadata)
 
But it should be registered as it is eventually registered to APNs successfully.

And yes, usually didRegisterForRemoteNotificationsWithDeviceToken gets called so quickly (as I've experimented so far), but is it guaranteed?

what exactly is guaranteed?

In current setup, is it guaranteed that "didRegisterForRemoteNotificationsWithDeviceToken" will be called BEFORE [self deviceRegistration]; call?

yes.
(It might be the case that didRegisterForRemoteNotificationsWithDeviceToken is not invoked, when u have no network (e.g. on being on airplane-mode), but I am not 100% sure)

 
If not, then there can be devices which is successfully registered to APNs but not registered to Push EE server.

which is not the end of the world :-)
When invoking another time (e.g. with proper network), the didRegisterForRemoteNotificationsWithDeviceToken will be called before anything in a custom Viewcontroller.

-M
 


 
Or should AeroDoc (fka ProDoctor) handle such cases on its own?

the lib protects against 'nil' :-) 


 
so in this case there exist no stashed device token at the time of the execution of the success block. In such a case, when the delegate called after successful APNs registration, device should still be registered to Push EE I think.


 




Perhaps we could/should docment that somewhere as well ? E.g. in the tutorial doc (e.g. since that is a common use-case), or just on the AeroDoc code (with some comments) ?



-Matthias

--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev


_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev



--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev


_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev



--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev


_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev



--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev


_______________________________________________
aerogear-dev mailing list
aerogear-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev



--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf