![](/img/trans.png)
[英]Does Windows 8 Phone support JQuery ajax call when using PhoneGap?
[英]Using $.ajax to fetch static html files in phonegap and Windows Phone 7
我們使用Phonegap / Cordova 2.3.0將應用程序部署到Windows Phone 7.應用程序使用Require.js動態加載所有模塊。 一個模塊稱為“路由器”,負責從本地文件中獲取靜態html並將其內容加載到<div>
。 這適用於iPhone,iPad和Windows Phone 8.但WP7中發生了一些奇怪的事情。
來自router.js
示例代碼:
//path that works with WP8
var path = "www/views/";
$.ajax({ url: path + "test3.html" })
.done(function(html) {
alert(html); //result from Windows Phone 8
}).fail(function(error) {
alert(error); //result from Windows Phone 7
});
在WP7上測試時給出的錯誤是404 Not Found。
我說“發生了一些奇怪的事情”,因為我可以將上面的確切代碼復制到main.js
(require.js入口點)或index.html
,它將運行而不會出錯。 但是當我將該代碼放入router.js
,它會返回錯誤。
一些觀察:
router.js
是在同一文件夾( /www/js
)作為main.js
。 index.html
位於/www
文件夾中。 /app/www/views
, app/www/views
, /www/views
, www/views
, /views
, views
,甚至x-wmapp0:/app/www/views
和x-wmapp1:/app/www/views
。 以下內容可幫助您了解問題
1)通過File.cs(\\ templates \\ standalone \\ cordovalib \\ Commands \\ File.cs).readAsText方法訪問Cordova WP7上的本地文件。 因此,您可以附加完整的cordovalib而不是編譯的dll,並查看Cordova嘗試查找該文件的位置。
2)ajax請求和本地文件之間的轉換是在XHRPatch(cordova-2.3.0.js)完成的,所以嘗試在這里添加uri跟蹤(console.log(uri);)
使用我現在使用的Cordova 2.7.0(在Windows Phone 8上 - 在WP7上它可能有所不同!)看起來你只需要通過相對於應用程序根目錄的路徑(而不是你的www
目錄!這意味着你必須從www/path/to/my/file.js
希望有所幫助 - 這對我來說很困惑!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.