LocalFileSystem未定义PhoneGap

时间:2014-02-11 21:07:54

标签: extjs cordova touch filereader

我知道之前已经问过这个问题,但我找不到任何解决办法......

我正在尝试通过PhoneGap文件功能获取文件,因此我在他们的文档网站上进行了示例,并得到了上述错误。

这是我的代码:

document.addEventListener("deviceready", onDeviceReady, false);

            function onDeviceReady() {
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
            }

            function gotFS(fileSystem) {
                    fileSystem.root.getFile("toto.txt", null, gotFileEntry, fail);
            }

            function gotFileEntry(fileEntry) {
                    fileEntry.file(gotFile, fail);
            }

            function gotFile(file){
                    readDataUrl(file);
                    readAsText(file);
            }

            function readDataUrl(file) {
                    var reader = new FileReader();
                    reader.onloadend = function(evt) {
                            console.log("Read as data URL");
                            console.log(evt.target.result);
                    };
                    reader.readAsDataURL(file);
            }

            function readAsText(file) {
                    var reader = new FileReader();
                    reader.onloadend = function(evt) {
                            console.log("Read as text");
                            console.log(evt.target.result);
                    };
                    Ext.Msg.alert('toto',reader.readAsText(file), Ext.emptyFn);
            }

            function fail(error) {
                    Ext.Msg.alert('error',error.code, Ext.emptyFn);
            }

这是我的config.xml文件:

<feature name="http://api.phonegap.com/1.0/device" />
<preference name="permissions" value="none" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="auto" />
    <feature name="File">
        <param name="android-package" value="org.apache.cordova.file" />
    </feature>
<icon src="icon.png" />
<icon gap:density="ldpi" gap:platform="android" src="res/icon/android/icon-36-ldpi.png" />
<icon gap:density="mdpi" gap:platform="android" src="res/icon/android/icon-48-mdpi.png" />
<icon gap:density="hdpi" gap:platform="android" src="res/icon/android/icon-72-hdpi.png" />
<icon gap:density="xhdpi" gap:platform="android" src="res/icon/android/icon-96-xhdpi.png" />
<icon gap:platform="blackberry" src="res/icon/blackberry/icon-80.png" />
<icon gap:platform="blackberry" gap:state="hover" src="res/icon/blackberry/icon-80.png" />
<icon gap:platform="ios" height="57" src="res/icon/ios/icon-57.png" width="57" />
<icon gap:platform="ios" height="72" src="res/icon/ios/icon-72.png" width="72" />
<icon gap:platform="ios" height="114" src="res/icon/ios/icon-57-2x.png" width="114" />
<icon gap:platform="ios" height="144" src="res/icon/ios/icon-72-2x.png" width="144" />
<icon gap:platform="webos" src="res/icon/webos/icon-64.png" />
<icon gap:platform="winphone" src="res/icon/windows-phone/icon-48.png" />
<icon gap:platform="winphone" gap:role="background" src="res/icon/windows-phone/icon-173.png" />
<gap:splash gap:density="ldpi" gap:platform="android" src="res/screen/android/screen-ldpi-portrait.png" />
<gap:splash gap:density="mdpi" gap:platform="android" src="res/screen/android/screen-mdpi-portrait.png" />
<gap:splash gap:density="hdpi" gap:platform="android" src="res/screen/android/screen-hdpi-portrait.png" />
<gap:splash gap:density="xhdpi" gap:platform="android" src="res/screen/android/screen-xhdpi-portrait.png" />
<gap:splash gap:platform="blackberry" src="res/screen/blackberry/screen-225.png" />
<gap:splash gap:platform="ios" height="480" src="res/screen/ios/screen-iphone-portrait.png" width="320" />
<gap:splash gap:platform="ios" height="960" src="res/screen/ios/screen-iphone-portrait-2x.png" width="640" />
<gap:splash gap:platform="ios" height="1024" src="res/screen/ios/screen-ipad-portrait.png" width="768" />
<gap:splash gap:platform="ios" height="768" src="res/screen/ios/screen-ipad-landscape.png" width="1024" />
<gap:splash gap:platform="winphone" src="res/screen/windows-phone/screen-portrait.jpg" />
<access origin="http://127.0.0.1*" />

我尝试使用phonegap CLI安装cordova文件插件,该插件实际上已成功...但我的应用程序上出现了任何更改。

有什么想法吗?

非常感谢!!

ps:我正在使用Sencha Touch 2.3.1与Sencha Cmd构建我的应用程序,但它可能不会改变任何东西,因为其他功能,如batterystatus或物理按钮绑定工作正常......

1 个答案:

答案 0 :(得分:0)

在Config.xml中包含以下内容

  <feature name="http://api.phonegap.com/1.0/file" />
  <feature name="File">
     <param name="android-package" value="org.apache.cordova.file.FileUtils" />
  </feature>
  <feature name="FileTransfer">
     <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
  </feature>
  <feature name="Storage">
     <param value="org.apache.cordova.Storage" name="android-package"/>
  </feature>