How to get Sencha Touch working on non-touch and touch Blackberry devices

When I needed to get Sencha Touch to work on non-touch Blackberry devices I tried the approach documented at
http://resilientcoder.blogspot.com/2011/03/getting-sencha-touch-to-work-on-non.html

At first this appeared to work correctly. But then I tried the app on a touch Blackberry and the touch elements didn’t work properly any more. So I ditched changes recommended by Resilient Coder and went digging into sencha-touch-debug.js myself.

To get Sencha Touch working on both touch and non-touch Blackberry devices you need to make the following changes.

You need to add || Ext.is.Blackberry to line 18098. This enables clicking on Sench Touch ui elements like buttons and tabs with the thumbpad or trackball. You also need to comment out line 18101 to enable scrolling via touch on Blackberry devices like the Torch. If you don’t comment this line out scrolling via touch doesn’t work properly.

The final piece of the puzzle is to enable scrolling using the thumbpad or trackball. This is really more of a work around. It’s based off the code I found at http://pastebin.com/Mih4Ps12. To use this work around you basically just extend your scrollable panels from Ext.NonTouchCompatibleScrollPanel instead of Ext.Panel.

5 responses to “How to get Sencha Touch working on non-touch and touch Blackberry devices”

  1. Bundinho says:

    Thanks! 

    Touch event is working fine but I haven’t tried scroll yet 

  2. Ken says:

    Tried the scrollable panel script but can’t get it to work.  

    I assume that all you need to do is either add a ‘html’ or a ‘items’ attribute after the scroll in order to see the content?

  3. Philip Murphy says:

    I have your code working (thanks), however, have you noticed that no mouse move event is fired when the cursor is at the bottom of the BB screen. This means that you have to keep moving the mouse slightly up and down to get it to keep scrolling down? I’m thinking that Sencha must be intercepting the events in some way as scrolling works fine on normal web pages.

  4. Vinh Nguyen says:

    It seems your solution won’t allow for scrolling with touch…if you undo all the things you did to the sencha-touch.js. Look for this line of code:
    onMouseEvent:function(a){if(!a.isSimulated)

    and add !Ext.is.Blackberry like so

    onMouseEvent:function(a){if(!a.isSimulated&&!Ext.is.Blackberry)
    It should allow for clicking with the trackpad as well as clicking with touch and scrolling with touch.

    To fix a scrolling bug in 1.1 with touch you’ll also need to look for:
    onTouchEnd:function(g){

    and stick in if(Ext.is.Blackberry){g.preventDefault()} like so

    onTouchEnd:function(g){if(Ext.is.Blackberry){g.preventDefault()}

  5. Amarjeet says:

    hi,
    I’m new in the blackberry development. i created a sencha application and i want to run it on blackberry simulator.
    How can i do it? where should i put model view, controller file of sencha project in blackberry phonegap(blackberry webwork )
    application.
    Can you suggest me how to do?

Leave a Reply