[aerogear-dev] [iOS] Cordova and AeroGear UnifiedPush
Lucas Holmquist
lholmqui at redhat.com
Mon Jul 15 11:23:53 EDT 2013
On Jul 15, 2013, at 11:20 AM, Matthias Wessendorf <matzew at apache.org> wrote:
>
>
>
> On Mon, Jul 15, 2013 at 5:11 PM, Lucas Holmquist <lholmqui at redhat.com> wrote:
>
> On Jul 13, 2013, at 10:54 AM, 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.
>>
>> 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 :-)
>> 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 :-)
>> 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.
>>
>>
> So This plugin is actually part of phone gap build, Which means people can get it easy. but at the same time, these types of plugins aren't as fast to upgrade
>
> They include an example ruby "push server" in the example code.
>
> Ah :-) So, if there are other plugins, let me know :) I just picked that one for my tests
i've only used that one and thats because you told me about it ;)
>
>
>
>
>
> I'm not sure how others feel about it, but i can be convinced of forking a copy, and then adding in our stuff, as well as adding a "FFOS" version that we could maybe contribute back upstream.
>
>
> I am also fine with (for now) just having "instructions", that should pretty much do the trick - at least I was also able to use it that way. (Android try-out will follow "soon")
>
>
> In one of the Phone Gap Day workshops, they are going to be talking about push notifications. so i'll report back.
>
> sweet! I am happy to hear more on what you've learned / heard there.
>
> Thanks for the feedback, Luke!
>
> -M
>
>
>> 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
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at 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 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/20130715/21cabaf9/attachment-0001.html
More information about the aerogear-dev
mailing list