sencha touch下,害人不浅的“*”号命名空间引入

最近各种语言混用着开发程序,今天集成时被sencha touch害得不浅,且听俺缓缓道来:

  平时开发时都是在windows下装个chrome或者safari来调试sencha touch写的平板应用程序,有问题直接处理了,今天在做系统集成时,将Sencha touch开发的页面一起集成后(将页面放到IPAD本地,然后用UIWebView来显示,以提高应用程序的访问速度),打开页面一片空白,每个都是(完了莫不是不兼容吧,心下猜测,想到这里心里哇凉哇凉的)。

   怎么办!上Google啊,当下屁颠屁颠的在网上找资料,找啊找啊,从国内找到国外,到官网搜了好几遍,啥有用的信息都没有,顿时全身都冰凉的(在Boss那没法交差啊,技术选型的是俺)。乐子大了,只好用最笨的办法了,代码一行一行的删除,当我把FormPanel删除之后发现页面居然能显示了(一下就乐了,比中双色球还高兴)。

  OK,知道问题出在哪里了,把代码从头到尾的检查一遍,发现官方给的例子中在引入命名空间的时候都是

    requires: [
        'Ext.form.*',
        'Ext.field.*',
        'Ext.Button',

        'Ext.data.Store'
    ],

  这样一种情况,我想莫不是命名空间出来问题吧(这是官网上给的例子啊,集成到IPAD里面居然不能显示,愤慨),有疑问就动手,把“*”号干掉,直接引入到TM孙子那去

    requires: [
        'Ext.form.FieldSet',//注意大小写(js大小写敏感)
        'Ext.Button',
        'Ext.form.NumberField',
        'Ext.data.Store'
    ],    

  我倒要看看到底是不是这问题,改完集成,哈,还真是这样。

     原因分析:在浏览器下这些js类是可以创建的,但是到了IOS下,在UIWebView控件中,某些功能被Apple给阉割了,什么不支持HTML5啊,网上说的大多数都是这个。

  结语:在写sencha touch代码时,千万不能图省事,直接用Ext.xxx.*这样的引入方式,老老实实的写全称,否则在IOS下有得你难受。

恩!!就写到这吧,祝各位也能解决问题。

posted @ 2012-11-22 19:55  az235  阅读(342)  评论(2编辑  收藏  举报