1

在使用 sencha touch 2 构建我的第一个移动应用程序时,我遇到了一些问题,我似乎找不到他们的答案。

  1. 应用程序配置应该存储在哪里(主题、语言、字体大小)。我正在考虑计算来自商店的数据,如果大于 0 则处理该数据,否则添加数据(这只会在第一次打开应用程序或清除本地存储时发生..)。这种事情还有其他选择(比如当用户与应用程序交互时将更改的数组之类的东西)?

  2. 我需要在我的应用程序中使用大约 100 张图像。我不知道我在这里有哪些选项可以将图像嵌入到应用程序中。看到很多从外部服务器加载图像的示例,但不确定是否有将它们与应用程序打包的选项。

  3. 如果我有一个带有名称(键)和图像 url(值)的数组,这个数组应该在哪里?在一个json文件中,每次需要一个名字时都使用ajax加载?

谢谢。

4

2 回答 2

1

让我建议几个选项:

1- 应用程序配置:如果应用程序配置类似于一组不会因用户交互而改变的常量值,您可以创建一个文件(例如 properties.js)并在应用程序加载时加载它。

  Properties = {
      SERVICE_URL : 'http://mycompany.com/api',
      PAGE_SIZE : 20
  }

并加载它你只需要编辑 app.json

"js": [
    {
        "path": "touch/sencha-touch.js",
        "x-bootstrap": true
    },
    {
        "path": "resources/data/properties.js"
    }
]

如果您想控制这些值,则可以将其保存在您的服务器上,并将其 URL 作为 app.json 中的“路径”

2-总是可以选择将图像打包到您的应用程序中,就像所有图标和启动图像都已打包一样,但不建议这样做,因为它会增加可部署的大小,并且互联网连接速度慢和低端设备的人可能会跳过安装它如果大小它太大了。

3-无需每次需要时都加载JSON文件,您可以在第一次加载后将数据缓存在全局变量中,并在需要时继续引用数组。现在在哪里定义全局变量是另一个有趣的讨论,人们提出了很多建议,但我更喜欢有一个可以保留所有全局函数和变量的单例类。请参阅此线程以了解如何:如果在执行 Ext.application() 之前需要全局辅助函数,我应该将它们放在哪里?

于 2013-04-22T06:25:50.150 回答
0

对于文本,我们可以这样尝试

   var A_address=Ext.getCmp('address').getValue();  //get the value
    localStorage.setItem("Adult1_select1",A_select1); // assign localstore

     var web_arrayTotalPAssengers=[];
      web_arrayTotalPAssengers.push(localStorage.getItem("web_TotalPassengers"));
     console.log(web_arrayTotalPAssengers);

// 压入数组中的值...

          Ext.Ajax.request({
                                        url:'http:/...........',
                                        method:'POST',
                                        disableCaching: false,
                                        headers: {
                                            'Accept': 'application/json',
                                            'Content-Type': 'application/json'
                                        },
                                        jsonData: {

                            origin:Ext.decode(web_arrayTotalPAssengers), //decode and send

                              }

      success:function(response)
                                        {
                                                    console.log(response);
                                            console.log("Success");
                                        },
                                            failure : function(response) 
                                        {
                                            console.log("Failed");
                                        }
于 2013-04-20T04:26:36.247 回答