如何通过phonegap中的ajax调用访问本地文件?

时间:2011-06-03 08:53:50

标签: iphone web-applications cordova sencha-touch

我有这段代码用于加载存储在phonegap(iPhone)项目的同一目录中的json文件(通常在“www”文件夹中),我怎样才能到达“routes.json”?我的项目有这个树文件夹:

__ WWW /

_ _ _index.html

_ _ _index.json(此代码所在的位置)

_ _ _routes.json *

  store: new Ext.data.Store({
                    model  : 'routes',
                        proxy: {
                            type: 'ajax',
                                  url : 'file://??????/www/routes.json',
                            reader: {
                                type: 'json'
                         }
                    },
                    autoLoad: true
                })

2 个答案:

答案 0 :(得分:2)

像处理服务器上的目录一样处理PhoneGap的 www 目录。您可以根据需要创建任意数量的子文件夹,并引用具有相对链接的文件。

正如YDL所提到的,如果您尝试访问 index.json 并且它位于 www 文件夹的根级别,您将使用:{{1 }}。另一个例子,如果你有一个名为 data 的子文件夹,它包含了你所有的json文件,你可以使用:index.json

答案 1 :(得分:1)

我认为这是Sencha Touch Ext.data.Proxy实现中的一个错误。我花了几个小时试图完成这项工作并且没有成功。使用jQuery实现它不到5分钟。

//Initialize the Store
new Ext.data.Store(
  { 
    model: "Routes", 
    storeId: "Routes",
    //The Proxy isn't used but it is a required configuration option
    proxy: {
      type: 'ajax' 
    }
});

//Populate the store using jQuery.get()
$.get('routes.json',
      function(data, status, jqXHR) {
        if(status == "success") {
          var store = Ext.StoreMgr.get('Routes');
          store.loadData(data);
        }
      });