Я разработал приложение для Android через cordova
, которое работает внутри веб-просмотра.Как я могу заставить приложение использовать persistent storage
в хром?Потребляет только temporary storage
.Причина, по которой мне нужно использовать persistent storage
, заключается в том, что я могу запросить больше пробелов.Если я использую temporary storage
и он выходит за пределы максимального лимита, временное хранилище удалит старые данные из базы данных.
Я запускаю ниже код в консоли Chrome, и это дает мне we are using 0 of 0 bytes
, что означает, что есть 0пространство в постоянном хранилище, которое я могу использовать.
navigator.webkitPersistentStorage.queryUsageAndQuota (
function(usedBytes, grantedBytes) {
console.log('we are using ', usedBytes, ' of ', grantedBytes, 'bytes');
},
function(e) { console.log('Error', e); }
);
Затем я запускаю следующий код, чтобы запросить больше памяти:
navigator.webkitPersistentStorage.requestQuota (
100 * 1024 * 1024, function(grantedBytes) {
window.requestFileSystem(PERSISTENT, grantedBytes, (d) => console.log(d), e => console.error(e));
}, function(e) { console.log('Error', e); }
);
после этого ничего не происходит, и это все еще 0 место для хранения, которое я могу использовать,Интересно, как я могу использовать постоянное хранилище в webview?Нужно ли указывать какое-либо разрешение для этого?
Разрешение для моего приложения:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.INTERNET" />
Я проверил еще один вопрос Android webview & localStorage , но этосовсем по другому с моим.Я прошу предоставить разрешение на постоянное хранение для моего веб-просмотра, но этот вопрос не объясняет, как использовать persistent storage
, вместо этого он использует temporary storage
, который является хранилищем по умолчанию в веб-просмотре.
Я установил setDatabaseEnabled(true)
для кода Java, но он не использует persistent storage
.Вместо этого он использует temporary storage
.