2013-09-08 17 views
11

Mam problem z dostępem do systemu plików Android w celu przechowywania w mojej aplikacji w telefonie. Szukałem i znalazłem wiele rozwiązań nie-moich-sytuacji!System Android LocalFileSystem Phonegap nie jest zdefiniowany

Wiem o potrzebie zwolnienia z pracy i zostania zwolnionym. Więc plik phonegap.js jest ładowany idealnie!

Myślę, że zażądałem uprawnień do pliku i mam funkcje w moim pliku manifestu i pliku konfiguracyjnego. Oto one:

config.xml:

<feature name="http://api.phonegap.com/1.0/device" /> 
    <feature name="http://api.phonegap.com/1.0/battery"/> 
    <feature name="http://api.phonegap.com/1.0/camera"/> 
    <feature name="http://api.phonegap.com/1.0/contacts"/> 
    <feature name="http://api.phonegap.com/1.0/file"/> 
    <feature name="http://api.phonegap.com/1.0/geolocation"/> 
    <feature name="http://api.phonegap.com/1.0/media"/> 
    <feature name="http://api.phonegap.com/1.0/network"/> 
    <feature name="http://api.phonegap.com/1.0/notification"/> 
    <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" /> 
    <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" /> 
    <access origin="*" /> 
    <content src="index.html" /> 
</widget> 

AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0.0" android:windowSoftInputMode="adjustPan" package="com.pakhshyaran.kara" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission." /> 
    <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="Kara" android:theme="@android:style/Theme.Black.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" /> 
</manifest> 

i tu jest błąd wyrzucając część mojego kodu:

$(document).ready(function() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
}); 
function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) { //throws the 'Uncaught ReferenceError: LocalFileSystem is not defined' error 
     fileSystem = fileSystem; 
    }, function (evt) { 
     alert(evt.target.error.code); 
    }); 
} 

ale dostaję błąd z jakiegoś powodu, o którym nie mam pojęcia! Proszę, daj mi swoją myśl. Bardzo to doceniam.

PS: Używam phonegap 3.0!

Odpowiedz

19

Czy używasz phonegap cli do budowy projektu? Wtedy mogłeś przegapić dodanie wtyczki do swojego projektu. Poza konfigurowaniem w config.xml i AndroidManifiest.xml potrzebujesz kodu dla wtyczki. Można go dodać do projektu z:

$ phonegap plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git 

Sprawdź górze strony w docs: http://docs.phonegap.com/en/3.0.0/cordova_file_file.md.html#LocalFileSystem

można również sprawdzić plik android/assets/www/cordova_plugins.js aby sprawdzić, czy rzeczywiście jest window.LocalFileSystem zdefiniowane. Poszukaj czegoś takiego:

{ 
    "file": "plugins/org.apache.cordova.core.file/www/FileSystem.js", 
    "id": "org.apache.cordova.core.file.FileSystem", 
    "clobbers": [ 
     "window.FileSystem" 
    ] 
}, 
+2

Dzięki za odpowiedź. Nie wiedziałem, że muszę dodać wtyczkę. Uruchomiłem polecenie i zostało wykonane. ale nic się nie stało z cordova_plugins.js. Czy jest coś jeszcze, co powinienem wiedzieć? – Hosein

+2

@Hosein Dodanie wtyczki faktycznie dodaje również konfigurację. Spróbuj zbudować to jeszcze raz: cordova build android – davidlgj

+0

Dzięki. Zostało to rozwiązane z małą trudnością. – Hosein

Powiązane problemy