我正在 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;
})();
File plugin sample来自 PhoneGap
fileSystem.root.getFile("js/data1.json", null, gotFileEntry, fail);
我还尝试通过使用一个函数来检查文件系统,以列出根文件系统中的目录,这让我得到类似的结果:
`- /
`- __Application Settings
`- Microsoft
`- Internet Explorer
`- DCOM
`- Shared
`- Media
`- ShellContent
`- Transfers
这些文件夹中的任何一个都指向 www/
或我的包。我找不到动态加载我的 *.json
文件的方法。
如有任何帮助,我们将不胜感激。
最佳答案
我的问题是使用亲戚路径访问我的文件。
我正在使用 requireJS 的插件来包含我的文件,但是这个插件为我的文件创建了荒谬的亲戚路径,例如 app/../js/data1.json
。
它现在运行良好。
编辑:我更改了插件中路径的计算以删除无用的目录更改,如下所示:
app/../js/data1.json
成为
js/data1.json
只需一个子字符串就足够了,因为每条路径都以相同的方式计算。
关于javascript - PhoneGap Windows Phone 8 - 从 www/文件夹访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095161/