5

アプリケーションの言語文字列をロードするために Phonegap のローカル ファイルを読み込もうとしていますが、動作させることができません :(

コードは非常に簡単です。

var pathToLocalFile = "/home/user/android/assets/www/js/";
var langCache = new FileReader();
langCache.onload = function(data){
  col = JSON.parse(data);
  refreshAllStrings();
};
langCache.onerror = function(err){
  debug.error(err);
};
langCache.readAsText(pathToLocalFile+currentLang+'.json');

このコードは Ripple エミュレーターでは機能しないため、次のコードに置き換えました。

var pathToLocalFile = "file:///android_asset/www/js/";

Androidの場合、同じ結果になります:

Uncaught TypeError: Object #<Console> has no method 'warning' cordova-2.4.0.js:2616
initRead cordova-2.4.0.js:2616
FileReader.readAsText cordova-2.4.0.js:2660    
loadLanguage

Ripple エミュレーターで Chrome を起動しgoogle-chrome -–allow-file-access-from-files、Android の構成とマニフェストにはすべてのアクセス許可とプラグインが設定されています。

もちろん、私は何かを見逃していますが、これが何であるか分かりますか?

よろしく。

4

2 に答える 2

5

ファイルがアプリのwwwフォルダーの下にある場合は、「/ home /..」または「file:///」を追加する必要はありません。アプリにバンドルされている場合でも、「AJAX」フェッチを使用してコンテンツをロードできるはずです。

$.get('js/filename.ext');
于 2013-02-11T17:51:37.653 に答える
1

表示されているエラーは、実際には、cordova-2.4.0.jsが存在しない「警告」メソッドを呼び出した結果です。console.warnである必要があります。readAsTextメソッドに文字列を使用することは非推奨になり、代わりにファイル参照を使用する必要があることを警告しようとしています。

何が起こるべきかは、「FileReader.readAs関数で文字列引数を使用することは非推奨です」というconsole.warnです。

于 2013-02-18T20:16:35.663 に答える