我正在开发Windows Phone 8上的PhoneGap项目。
我无法找到一个解决方案,可以在运行时从我的javascript访问位于www/
文件夹中的资源。
我的项目如下:
- www/
`- css/
`- js/
`- main.js
`- data1.json
`- data2.json
`- index.html
在我的脚本main.js
中,我想加载data1.json
或data2.json
。
我尝试了许多不起作用的解决方案:
来自jquery的AJAX函数
this.op = (function() {
var val = null;
$.ajax({
async: false,
url: 'www/js/data1.json',
success: function(data) {
console.log('DATA: ' + data);
val = JSON.parse(data);
}
});
return val;
})();
来自PhoneGap的
fileSystem.root.getFile("js/data1.json", null, gotFileEntry, fail);
我还尝试使用一个函数从根文件系统中列出目录来检查文件系统,这会导致我这样的事情:
`- /
`- __Application Settings
`- Microsoft
`- Internet Explorer
`- DCOM
`- Shared
`- Media
`- ShellContent
`- Transfers
这些文件夹中的任何一个都会导致www/
或我的捆绑。我找不到动态加载*.json
文件的方法。
任何帮助都会非常感激。
答案 0 :(得分:2)
我的问题是使用亲戚路径来访问我的文件。
我使用了一个requireJS插件来包含我的文件,但是这个插件创建了我的文件的荒谬亲戚路径,如app/../js/data1.json
。
现在效果很好。
编辑:我更改了插件中路径的计算,以删除无用的目录更改,如下所示:
app/../js/data1.json
变为
js/data1.json
只是一个子字符串,因为每条路径都以相同的方式计算。