[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