Как получить доступ к локальным файлам с помощью вызова ajax в phonegap? - PullRequest
4 голосов
/ 03 июня 2011

У меня есть этот фрагмент кода для загрузки json-файла, хранящегося в той же директории проекта phonegap (iPhone) (обычно в папке "www"), как мне добраться до "rout.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 ]

2 голосов
/ 03 июня 2011

Обращайтесь с каталогом PhoneGap www так же, как с каталогом на вашем сервере.Вы можете создать столько подпапок, сколько захотите, и можете ссылаться на файлы с относительными ссылками.

Как упоминалось в YDL, если вы пытаетесь получить доступ к index.json и он находится на корневом уровне папки www , вы должны использовать: index.json.В качестве другого примера, если у вас есть подпапка с именем data , в которой хранятся все ваши файлы json, вы должны использовать: data/index.json.

1 голос
/ 30 июля 2011

Я думаю, что это ошибка в реализации Sencha Touch Ext.data.Proxy. Я потратил пару часов, пытаясь получить эту работу, и безуспешно. Мне потребовалось менее 5 минут, чтобы реализовать его с помощью jQuery.

//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);
        }
      });  
...