[aerogear-dev] [iOS] Cordova and AeroGear UnifiedPush

Kris Borchers kborcher at redhat.com
Sat Jul 13 11:52:43 EDT 2013



On Jul 13, 2013, at 9:54, Matthias Wessendorf <matzew at apache.org> wrote:

> Hi,
> 
> today I played with Apache Cordova, the PushPlugin, AeroGear.js (Notifier branch) and our UnifiedPush Server.
> 
> Setup
> 
> These steps from the iOS Tutorial are required for an iOS-Cordova app as well:
> 
> Apple App ID and SSL Certificate for APNs
> Apple Provisioning Profile
> The AeroGear Unified Push Server
> TL;DR: You need a new App-ID, a SSL-cert and a provisioning profile (for that APP-ID). On the UnifiedPush Server, you need a PushApplication and an iOS Variant :-)
> 
> Cordova stuff
> 
> PushPlugin
> 
> Get the Cordova PushPlugin (there is a downloadable tarball) and extract the tarball to some location.
> 
> Cordova App
> 
> Creating a Corodva app is simple:
> 
> cordova create FolderOfTheApp com.my.id.AppName AppName
> cd FolderOfTheApp
> cordova platform add ios
> cordova plugin add folder_of_PushPlugin-1.3.3
> HINT: Make sure your Apple ID matches the above "com.my.id.AppName" value...
> 
> Install aerogear.js (checkout (and build) the Notifier branch) and jquery.min.js -> I basically copied the files into the "www" folder;
> afterwards build the project:
> 
> cordova build
> Now open the generated Xcode project, and start "hacking".
> 
> In the index.html I just linked the "required" JavaScript sources.
> The index.JS contains some JavaScript, that takes care of:
> Trigger the PushPlugin/UnifiedPush setup
> Setup of the Cordova PushPlugin
> The received (APNs) device-token is "submitted" to the UnifiedPush Server (using AeroGear.js)
> Handling iOS/APNs notifications
> This all works well. However, I had to do some "hack" to be able to use the registerWithPushServer()function:
> 
> var tokenContainer = {};
> tokenContainer.channelID = deviceToken;
> That is because the JS does expect the token/channelID as the above ".channelID". I am sure that can be made a bit more flexible.
> 
Yep, can you file a JIRA on AGJS under the unifiedpush component and I will fix that.
> Also, the "metadata" currently is only able to specify the following values:
> 
> deviceToken
> alias
> category
> I am sure we can make it more generic here as well.
> 
> So again, without too much work, I got it working:https://twitter.com/mwessendorf/status/356027736780836865
> 
> However I had some issues.
> 
> PushPlugin:
> 
> I had to copy the ObjC bits by hand. See here.
> 
> AeroGear.js
> 
> Uncaught TypeError: Cannot read property 'simplePushServerURL' of undefined aerogear.js:955 (anonymous function) aerogear.js:955 (anonymous function)
> 
> at least in the browser.... However, I could remove it, on the Corodva app .... and the app still seams to work.... So, not sure :-)
This should be fixed. I must not have pushed my latest changes.
> looks like the Notifier branch requires sockjs Uncaught ReferenceError: SockJS is not defined aerogear.js:942 (anonymous function)
> 
> But again in the browser...., I could remove that "import" in my Cordova app. So, not sure here too :-)
As Luke said, this is fixed in master and I just need to merge into Notifier.
> 
> The (ugly) code is posted on my GH account.
> 
> I guess we could convert this into a more "official" guide/tutorial at some point. This email should give some hints on getting started.
> 
> Another question:
> 
> Perhaps we want to fork the PushPlugin and stick our AeroGear.js bits in there? So that all is ready ? I am not sure, just some idea.
> 
> Feedback welcome!
> 
> 
> -- 
> Matthias Wessendorf 
> 
> blog: http://matthiaswessendorf.wordpress.com/
> sessions: http://www.slideshare.net/mwessendorf
> twitter: http://twitter.com/mwessendorf 
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20130713/78c3d600/attachment-0001.html 


More information about the aerogear-dev mailing list