1

サーバーからダウンロードした XML ファイルが SDCard にあります。アプリ内で使用するために、その XML を開いて読み取ろうとしています。私はそれを開いて正常に読みましたが、JQuery は解析中にフリーズしています。

ファイルを取得したら、次のようにします。

var reader = new FileReader();

reader.onloadend = function (evt) {      
  parseXML(evt.target.result);
};

reader.readAsText(file);

そして、次のように解析を開始します。

function parseXML(xml){
  $(xml).find('recipe').each(function(){    

そして、それはそこで止まります。JQuery の ajax メソッドを使用してアプリ内 XML を読み込むと、正常に動作します。では、PhoneGap で FileReader を使用して XML データをロードすることについて何か特別なことはありますか?

更新: OK、多くの時間と別の開発者の助けを借りて、この問題は PhoneGap のバグのようです。特に FileTRansfer オブジェクト。

私はこれをしていました:

var ft = new FileTransfer();
var dlPath = dataDir.fullPath + "/recipes.xml";
ft.download("http://design.mydomain.com/dave/humana/recipes/recipes.xml", dlPath, addedNewRecipes, addError);

そして、 addedNewRecipes 内でダウンロードが成功したというトレースを取得します。そして、それは... すべてではありませんでした。ファイルが切り捨てられたため、parseXML が失敗しました。XML ファイル全体は約 90KB (~1600 行) で、おそらく 50 行で切り捨てられていました。

FileTransfer を FileWriter オブジェクトに置き換えて、動作するようになりました。

PhoneGap/Cordova は本当にまだベータ版ですよね。

4

0 に答える 0