Iphone 如何在phonegap中通过ajax调用访问本地文件?
我有这段代码用于加载存储在phonegap(iPhone)项目的同一目录中的json文件(通常在“www”文件夹中),我如何才能访问“routes.json”?。我的项目有以下树文件夹: __万维网/ ___index.html ___index.json(此代码位于何处) ___routes.json*Iphone 如何在phonegap中通过ajax调用访问本地文件?,iphone,web-applications,cordova,sencha-touch,Iphone,Web Applications,Cordova,Sencha Touch,我有这段代码用于加载存储在phonegap(iPhone)项目的同一目录中的json文件(通常在“www”文件夹中),我如何才能访问“routes.json”?。我的项目有以下树文件夹: __万维网/ ___index.html ___index.json(此代码位于何处) ___routes.json* store: new Ext.data.Store({ model : 'routes', pro
store: new Ext.data.Store({
model : 'routes',
proxy: {
type: 'ajax',
url : 'file://??????/www/routes.json',
reader: {
type: 'json'
}
},
autoLoad: true
})
像对待服务器上的目录一样对待PhoneGap的www目录。您可以创建任意多个子文件夹,并且可以引用具有相对链接的文件
正如YDL所提到的,如果您试图访问index.json,并且它位于www文件夹的根级别,那么您可以使用:
index.json
。另一个例子是,如果您有一个名为data的子文件夹,其中包含所有json文件,那么您将使用:data/index.json
我认为这是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);
}
});
如果json文件与您的主Javascript文件位于同一文件夹中,您应该能够使用“url:routes.json”。这是我尝试的第一件事,没有结果。事实上,应用程序始终显示加载微调器,而不加载任何内容……您能发布json文件的一部分吗?这是json文件:[{“nome”:“Borgo e Centro”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“1”},{“诺姆”:“商业”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“2”},{“诺姆”:“帕奇”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“2”]但我在phonegap应用程序中没有服务器。因此它需要绝对路径…虽然…在电脑上打开html文件时的行为相同,但实际上在地址栏中会显示完整路径。正确的说法是,在电脑上打开html文件时,地址栏会显示文件位置的完整路径。但是,您仍然可以使用rela在你的HTML文件中使用动态链接/路径,它们仍然可以正常工作。PhoneGap www文件夹也是如此。你应该在PG项目中使用相对路径,而不是绝对路径。我尝试过这个方法,但结果相同……我也尝试过“/routes.json”……但没有任何结果……我认为相对路径只在HTML文件中工作。。。