2

cordova 3.0.0 を使用して、クロスプラットフォーム アプリケーションを開発しています。このプロジェクトは、cordova-cli を使用して作成され、Android プラットフォーム用にビルドされています。現時点では、ファイルとファイル転送プラグインを正常に使用しています。Storage API を使用しようとすると問題が発生します。PhoneGap のドキュメントによると、Storage APIはバージョン 3.0 以降の cordova に組み込まれています。問題は、Storage API を操作しようとしているときです。

var db = window.openDatabase(name, "1.0", name, size);

Cordova の PluginManager ログ エラー:

exec() call to unknown plugin: Storage

問題は、なぜ cordova が PluginManager を介して Storage を呼び出そうとするのかということです。

私のconfig.xmlも投稿します:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets">
    <name>Hello Cordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
    </feature>
    <feature name="File">
        <param name="android-package" value="org.apache.cordova.core.FileUtils" />
    </feature>
    <feature name="FileTransfer">
        <param name="android-package" value="org.apache.cordova.core.FileTransfer" />
    </feature>
    <access origin="*" />
    <preference name="useBrowserHistory" value="true" />
    <preference name="exit-on-suspend" value="false" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
</widget>

およびAndroidManifest.xml

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" android:windowSoftInputMode="adjustPan" package="com.isd.immersivereader" 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" />
    <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="ImmersiveReader" 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="17" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

私が使用している cordova.js のバージョンは 3.0.0-0-ge670de9 (私が知っている限りでは最新のリビジョンです) であり、ストレージ定義があります。

さらに情報が必要な場合は、お知らせください)。

前もって感謝します。

4

1 に答える 1

4

Cordova >=3.0.0 を使用する場合、ストレージ機能を config.xml (app/res/xml/config.xml) に追加する必要があります。例えば

<feature name="Storage">
    <param name="android-package" value="org.apache.cordova.Storage" />
</feature>
于 2013-08-26T15:28:57.097 に答える