2013-02-26 52 views
1

我正在研究Windows Phone 8上的PhoneGap項目。 我無法在運行時從我的javascript中找到位於www/文件夾中的資源的解決方案。PhoneGap Windows Phone 8 - 訪問來自www /文件夾的資源

我的項目是這樣的:

- www/ 
`- css/ 
`- js/ 
    `- main.js 
    `- data1.json 
    `- data2.json 
`- index.html 

在我的劇本main.js我想爲加載data1.jsondata2.json

我嘗試了很多的解決方案,不工作:

AJAX功能從jQuery的

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文件。

任何幫助將是非常感激。

+0

嘗試從$ .ajax url中刪除www文件夾,即「js/data1.json」或「/js/data1.json」試試 – 1Mayur 2013-02-26 17:19:45

+0

Thx爲您提供幫助,但我試過每一個組合,並且他們中的任何一個都有效: – TroX 2013-02-26 17:29:23

+0

嘗試將data.json和data2.json放在與index.html相同的級別,然後將url更改爲'data1.json'或'/data1.json' – 1Mayur 2013-02-27 05:57:41

回答

2

我的問題是使用親屬路徑來訪問我的文件。

我正在使用requireJS的插件來包含我的文件,但是這個插件創建了一個荒謬的親戚路徑到我的文件,如app/../js/data1.json

現在運行良好。

編輯:我改變了路徑的計算在插件刪除無用的目錄更改像這樣:

app/../js/data1.json 

成爲

js/data1.json 

只是一個子串足夠多導致每一條路徑是計算同樣的方式。

+0

你能請詳細說明您如何修改代碼以解決問題? – 2013-08-09 13:51:51

+0

請詳細說明解決方案... – Nirus 2013-09-24 15:19:52