zoukankan      html  css  js  c++  java
  • sencha touch 常见问题解答(1-25)

    欢迎留言补充,持续更新中...

    1.sencha touch 是什么?

    答:Sencha touch框架是世界上第一个基于HTML 5的移动应用框架.它可以让你的Web应用看起来像网络应用。美丽的用户界面组件和丰富的数据管理,全部基于最新的HTML
    5和CSS3的 WEB标准,全面兼容Android和iOS设备。

    2.sencha touch 能够访问原生的设备功能,如摄像头、麦克风吗?

    答:Sencha touch只是一个HTML 5框架,所以想要它能够访问原生的设备功能,需要浏览器提供支持才可以。

      如果需要访问原生的设备功能,可以考虑与Cordova(PhoneGap)结合使用。

      Cordova相关介绍:http://baike.baidu.com/view/8326345.htm

    3.sencha touch ajax如何跨域?

    答:如果是发布成web站点的话,建议使用jsonp,如果是打包成本地应用,ajax不用考虑跨域问题。

    4.sencha touch jsonp可以post提交参数吗?

    答:jsonp的请求机制其实是请求js文件,所以只能通过get方式提交参数。

      json和jsonp的区别:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

    5.用jsonp请求数据,在chrome中的response有返回数据,但是在jsonp中走failure方法不走success方法是怎么回事

    答:多半是返回的数据格式不正确,请仔细检查返回数据格式是否正确以下是标准格式。

      参考接口:http://www.361y.cn:8080/Json/UsedType.asmx/List

    6.Uncaught TypeError: Cannot call method '' of null错误如何解决,如  Ext.getStore('storeId').load();

    答:1.没有这个方法,方法名书写错误

      2.调用对象为空或者不是你所期望的对象,通过console.log(Ext.getStore('storeId'));打印对象检查

    7.如上所述,为什么我获取的对象为空?

    答:1.如果你想要获取的对象是一个视图,那么有可能你所获取的对象还没有被创建,需要你创建之后才能获取到

      2.如果你想要获取的对象是一个数据仓库,并且已经指定了storeId,那么可能是你没有在视图/控制层中引用指定的数据仓库,请先引用

    8.视图已经被创建,我在控制层中通过id/xtype/itemId监听视图,为什么监听事件时,只作用一次?

    答:可能是你在操作过程中,对视图的创建/销毁处理不正确,视图被重复创建,那么你就只能监听到首次被创建的视图,之后再创建的视图就无法监听到了。

    9.Sencha Touch 框架如何实现跨平台?

    答:通过Cordova(PhoneGap)将应用打包成适用于不同操作系统的本地应用即可。

      Cordova相关介绍:http://baike.baidu.com/view/8326345.htm

    10.Sencha Touch 如何结合cordova实现消息的推送

    答:比较简单的方法有,集成极光推送/百度推送

      百度推送:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push

      极光推送:https://www.jpush.cn/

    11。Sencha Touch 如何通过cordova打包成本地应用

    答:安卓打包参考:http://www.cnblogs.com/mlzs/tag/sencha%20touch%E4%B8%8Ecordova/

    12.Sencha Touch 项目启动出现3个白点求解?

    答:那是加载动画,为了给用户比较好的使用体验。由index.html页面中id为appLoadingIndicator这个div层来决定的,可以自行改动

      应用启动完毕后,会通过 Ext.fly('appLoadingIndicator').destroy();销毁这个div层。

    13.sencho touch 开发的时候 如何识别各种手机型号/操作系统类型?

    答:如果发布成web模式,可以通过以下方式识别设备操作系统类型:http://www.cnblogs.com/duanguyuan/p/3534470.html

      如果通过Cordova(PhoneGap)打包,可以通过device常量获取,参考资料:http://cordova.apache.org/docs/zh/3.1.0/cordova_device_device.md.html#%E8%A8%AD%E5%82%99

    14.使用webkit-mask-image做背景图片,在浏览器中正常显示,在手机上不能显示

    答:可能是设置路径的时候没注意区分大小写,在手机上严格区分了大小写,找不到图片导致不能显示。

    15.navigationView如何动态改变标题?

    答:在navigationView中添加自定义方法,调用即可(this指的就是navigationView)

        //更新标题
        setTitle: function (text) {
            var me = this,
            nav = me.getNavigationBar();
            nav.setTitle(text);
            nav.backButtonStack[nav.backButtonStack.length - 1]= text;
        }

    16.哪些视图控件可以使用数据仓库

    答:list、selectfield、dataView、grid、待补充...

    17.使用selectfield时,数据源格式不是标准格式这么办?

    答:只要是数组对象,可以通过配置displayField(默认为text)和valueField(默认为value)来处理

      标准格式:

    [{
        text: 'First Option',
        value: 'first'
    },
    {
        text: 'Second Option',
        value: 'second'
    },
    {
        text: 'Third Option',
        value: 'third'
    }]

    18.使用selectfield时,如何指定弹出的选择控件类型?

    答:通过usePicker进行配置,可选值有auto/true/false

    19.使用selectfield时,如何对弹出的选择控件进行配置?

    答:用过defaultTabletPickerConfig/defaultPhonePickerConfig这进行配置,具体参数说明请查看api

    20.使用selectfield时,我想获取一些额外的值(除开text/value之外的值)可以吗?

    答:可以,不过必须使用store来配置数据源,然后通过selectfield.getRecord()就能找到额外的属性值

    21.从服务器取到的数据是数据索引,比如男/女,实际获取到的值是1/2,我想要显示文字如何处理?

    答:如果你使用了模型,可以使用convert来处理,api之中直接搜索convert即可

    name: 'sex',
    type: 'string',
    convert: function(v, record) {
        return ['', '男', '女'][v];
    }

      如果你没有使用模型,但是里使用了模版,你可以参考XTemplate中的示例来处理

    22.input输入框点击时会出现外框,如何去掉?

    答:加入以下css应该可以解决

    outline:medium;

    23.sencho touch 如何引入css/js,打包的时候如何引入资源文件?

    答:通过cmd生成的项目,在app.json文件中可以配置引入css/js,以及打包后需要的资源文件,以下为配置详解。

      需要注意的是,最新版本的sencho touch 在开发过程中,需要引入css/js时,还需要在bootstrap.json之中配置一下才能起作用,或者通过build命令打包一下,两者选其一

      1 {
      2     /**
      3      * 项目的命名空间
      4      */
      5     "name": "app",
      6     /**
      7      * 项目起始html文件,路径相对于此app.json文件
      8      */
      9     "indexHtmlPath": "index.html",
     10     /**
     11      * 运行此项目的url路径,比如: "http://localhost/myapp/index.html".
     12      *
     13      *当设置此值时,将不能通过文件系统直接访问。
     14      */
     15     "url": null,
     16     /**
     17      * 所需引用js文件
     18      * 单个格式如下
     19      *      {
     20      *          "path": "path/to/script.js" // 文件路径,如果本地文件,路径相对于此app.json文件
     21      *          "remote": true              // (可选值)
     22      *                                      // -默认值为"false"
     23      *                                      // -"true",如果这个文件是一个远程文件不会被复制
     24      *          "update": "delta"           // (可选值)
     25      *                                      // 如果没有指定,这个文件将只加载一次,
     26      *                                        // 缓存到localStorage里面,直到这个值被改变。
     27      *                                      //  - "delta" 增量更新此文件
     28      *                                      //  - "full" 当文件改变时,完全更新此文件
     29      *          "x-bootstrap": true         // (可选值)
     30      *                                      // 表示这是项目依赖文件。
     31      *                                      // 该文件不会被复制到生成目录或引用
     32      *
     33      *      }
     34      */
     35     "js": [{
     36         "path": "touch/sencha-touch.js",
     37         "x-bootstrap": true
     38     },
     39     {
     40         "path": "app.js",
     41         /* 表示所有的类生成到这个文件 */
     42         "bundle": true,
     43         "update": "delta"
     44     }],
     45     /**
     46      *所需引用js文件
     47      * 单个格式如下
     48      *      {
     49      *          "path": "path/to/script.js" // 文件路径,如果本地文件,路径相对于此app.json文件
     50      *          "remote": true              // (可选值)
     51      *                                      // -默认值为"false"
     52      *                                      // -"true",如果这个文件是一个远程文件不会被复制
     53      *          "update": "delta"           // (可选值)
     54      *                                      // 如果没有指定,这个文件将只加载一次,
     55      *                                        // 缓存到localStorage里面,直到这个文件被改变。
     56      *                                      //  - "delta" 增量更新此文件
     57      *                                      //  - "full" 当文件改变时,完全更新此文件
     58      *
     59      *      }
     60      */
     61     "css": [{
     62         "path": "resources/css/app.css",
     63         "update": "delta"
     64     },
     65     {
     66         "path": "resources/css/main.css",
     67         "update": "delta"
     68     }],
     69     /**
     70      *项目生成时用于自动生成HTML5应用程序缓存清单(cache.manifest)
     71      */
     72     "appCache": {
     73         /**
     74          * 本地缓存名单
     75          */
     76         "cache": ["index.html"],
     77         /**
     78          * 网络缓存名单
     79          */
     80         "network": ["*"],
     81         /**
     82          * FALLBACK缓存名单
     83          */
     84         "fallback": []
     85     },
     86     /**
     87      * 项目生成时需要复制的资源文件
     88      */
     89     "resources": ["resources/images", "resources/icons", "resources/startup"],
     90     /**
     91      * 项目生成时忽略的文件/目录名称匹配,必须是有效的正则表达式
     92      */
     93     "ignore": [".svn$"],
     94     /**
     95      * 之前生成项目储存目录,用于进行增量更新,不可随意改变此目录下的文件
     96      */
     97     "archivePath": "archive",
     98     /**
     99      * 在cmd创建时需要引用的类
    100      */
    101     "requires": [],
    102     /**
    103      * 唯一ID,作为localStorage前缀。
    104      * 通常情况下,你不应该改变这个值。
    105      */
    106     "id": "d8504e05-a9fc-4692-bdbc-94c3190751f5"
    107 }

    24.sencho touch 打包成本地应用后不用担心ajax跨域问题,那在开发过程中,ajax跨域问题如何解决,有没有比较方便的解决方案?

    答:找到谷歌浏览器启动文件,为其创建一个快捷方式,右键-》属性,加入以下命令 --disable-web-security

      关闭所有已经打开的谷歌浏览器,然后再次打开

      如图右图所示,将项目中的index.html文件拖进去。也不用搭服务器,ajax也是可以跨域了,用于自己开发测试比较方便

       

    25.sencha touch 小米3无法点击,如何解决?

    答:请看这里http://www.cnblogs.com/cjpx00008/p/3779533.html?ADUIN=534502520&ADSESSION=1402363120&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349

  • 相关阅读:
    Ios插件开发
    React-Native学习指南
    APP测试基本流程
    iOS开发-由浅至深学习block
    你真的会用UITableView嘛
    iOS系统右滑返回全局控制方案
    优化UITableViewCell高度计算的那些事
    UITableViewCell高度自适应探索--AutoLayout结合Frame
    UITableView优化技巧
    页面间跳转的性能优化(一)
  • 原文地址:https://www.cnblogs.com/mlzs/p/3756098.html
Copyright © 2011-2022 走看看