cordova
를 통해 안드로이드 애플리케이션을 개발했습니다
webview 내에서 실행됩니다. 앱에서
persistent storage
를 사용하도록하려면 어떻게해야합니까
크롬에서? 그것은 단지
temporary storage
를 소비
.
persistent storage
를 사용해야하는 이유
더 많은 공간을 요청할 수 있다는 것입니다.
temporary storage
를 사용하면
최대 한도를 초과하면 임시 저장소에서 데이터베이스의 오래된 데이터를 제거합니다.
크롬 콘솔에서 아래 코드를 실행하면
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 웹뷰 및 localStorage 를 확인했지만 내 질문과는 다릅니다. 내 웹뷰에 영구 저장 권한을 부여하도록 요청했지만 해당 질문에
persistent storage
사용 방법이 설명되어 있지 않습니다
대신
temporary storage
를 사용합니다
이것은 webview의 기본 저장소입니다.
setDatabaseEnabled(true)
를 설정했습니다
Java 코드에서는
persistent storage
를 사용하지 않습니다.
. 대신,
temporary storage
를 사용합니다
.
-
답변 # 1
관련 자료
- mediastore - Android Storage Access Framework를 사용하여 파일 확장 가져 오기
- Javascript에서 Android WebView를 다시로드 할 수 없습니다
- FileChooser가없는 WebView를 통한 Android Java 업로드 파일
- Android 9의 외부 저장소에서 데이터 디렉토리로 파일을 복사 할 수 없습니다
- Android 앱에서 전송 한 Firebase 저장소에서 오디오를 재생할 수 없습니다
- java - Android WebView가 HTML 문자열에서 데이터를 올바르게로드하지 않습니다
- 안드로이드 webView에 첫 번째 URL이 없으면 두 번째 URL을로드하십시오
- Android Q 용 범위 스토리지로 마이그레이션
- java - Android 스토리지 액세스 프레임 워크에서 선택하는 동안 파일이 읽기 전용입니다
- webview에서 android에서 dialerapp를 여는 방법
- java - 기계적 인조 인간 - 인라인 권한 및 매니페스트 권한에도 불구하고 "권한 거부"저장소에서 파일을 읽습니다
- qt - Android 용 로컬 저장소 경로를 설정하는 방법
- java - Android WebView에서 Google 로그인을 수행하고 로그인 후 홈 웹 사이트로 리디렉션하는 방법은 무엇입니까?
- 텍스트 편집 필드에 포커스가 있으면 Android Webview에 키보드가 표시되지 않습니다
- ms office - 안드로이드의 webview에서 PPT/프리젠 테이션 파일을 여는 방법은 무엇입니까?
- java - WebView Android에 JavaScript를 포함하는 방법
- webview, Android에서 파일을 선택하지 않는 Android 파일 선택기
- java - 안드로이드 WebView에서 자바 스크립트 파일의 기능을 사용하는 방법은 무엇입니까?
- 안드로이드 웹뷰와 이오 닉의 차이점
- javascript - API 레벨 18의 Android WebView를 사용하여 Javascript 평가
setDatabaseEnabled ()는 여전히 사용 가능한 유일한 방법 인 것 같습니다 :
와이즈 비즈 와이즈 비즈 .더 이상 데이터베이스의 위치를 변경할 수없는 경우에도;같이 setDataBasePath ()는 다음을 읽습니다.
와이즈 비즈