Request write permission on Android <11

This commit is contained in:
OleSTEEP 2024-03-07 03:07:02 +03:00
parent 3475b3c69f
commit 8dc99ca2c1
5 changed files with 56 additions and 12 deletions

View file

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="su.viende.omori" version="1.0.8-dev" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="su.viende.omori" version="1.0.8-dev" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<preference name="orientation" value="sensorLandscape" />
<preference name="Fullscreen" value="true" />
@ -25,7 +25,12 @@
<platform name="android">
<config-file target="AndroidManifest.xml" parent="/*" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
</config-file>
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:requestLegacyExternalStorage="true" />
</edit-config>
</platform>
<name>OMORI</name>

13
package-lock.json generated
View file

@ -10,6 +10,7 @@
"license": "Apache-2.0",
"devDependencies": {
"cordova-android": "^12.0.1",
"cordova-plugin-android-permissions": "^1.1.5",
"cordova-plugin-file": "^8.0.1",
"cordova-plugin-fullscreen": "^1.3.0",
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
@ -242,6 +243,18 @@
"node": ">=16.0.0"
}
},
"node_modules/cordova-plugin-android-permissions": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/cordova-plugin-android-permissions/-/cordova-plugin-android-permissions-1.1.5.tgz",
"integrity": "sha512-oTTV9cCMBqXTCmU+nYRebsP2IQfrtdvl2vYXHjoJgv5NHCIDgY4KFg6kJTcwXQOiymeGXuw0+MTvJJOueAdleA==",
"dev": true,
"engines": [
{
"name": "cordova",
"version": ">=5.0.0"
}
]
},
"node_modules/cordova-plugin-file": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-8.0.1.tgz",

View file

@ -14,6 +14,7 @@
"license": "Apache-2.0",
"devDependencies": {
"cordova-android": "^12.0.1",
"cordova-plugin-android-permissions": "^1.1.5",
"cordova-plugin-file": "^8.0.1",
"cordova-plugin-fullscreen": "^1.3.0",
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
@ -29,7 +30,8 @@
"cordova-plugin-gamepad": {},
"cordova-plugin-file": {
"ANDROIDX_WEBKIT_VERSION": "1.4.0"
}
},
"cordova-plugin-android-permissions": {}
}
}
}

View file

@ -350,13 +350,13 @@ document.addEventListener("deviceready", () => {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onerror = function (e) {
console.log("Failed file write: " + e.toString());
console.log(`Failed file write: Error ${e.code}`);
};
fileWriter.write(data);
});
}, (e) => {
console.log("Error to create external save file: " + e.toString());
console.log(`Error to create external save file: Error ${e.code}`);
});
});
});
@ -372,13 +372,13 @@ document.addEventListener("deviceready", () => {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onerror = function (e) {
console.log("Failed file write: " + e.toString());
console.log(`Failed file write: Error ${e.code}`);
};
fileWriter.write(data);
});
}, (e) => {
console.log("Error to create external file: " + e.toString());
console.log(`Error to create external file: Error ${e.code}`);
});
});
}
@ -395,3 +395,15 @@ SceneManager.terminate = function () {
window.close = function() {
navigator.app.exitApp();
}
// ==========================================
// Request storage permissions on startup
// ==========================================
document.addEventListener("deviceready", () => {
var permissions = cordova.plugins.permissions;
permissions.checkPermission(permissions.WRITE_EXTERNAL_STORAGE, (status) => {
if (status.hasPermission === false) {
permissions.requestPermission(permissions.WRITE_EXTERNAL_STORAGE);
}
});
})

View file

@ -353,13 +353,13 @@ document.addEventListener("deviceready", () => {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onerror = function (e) {
console.log("Failed file write: " + e.toString());
console.log(`Failed file write: Error ${e.code}`);
};
fileWriter.write(data);
});
}, (e) => {
console.log("Error to create external save file: " + e.toString());
console.log(`Error to create external save file: Error ${e.code}`);
});
});
});
@ -375,13 +375,13 @@ document.addEventListener("deviceready", () => {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onerror = function (e) {
console.log("Failed file write: " + e.toString());
console.log(`Failed file write: Error ${e.code}`);
};
fileWriter.write(data);
});
}, (e) => {
console.log("Error to create external file: " + e.toString());
console.log(`Error to create external file: Error ${e.code}`);
});
});
}
@ -398,3 +398,15 @@ SceneManager.terminate = function () {
window.close = function() {
navigator.app.exitApp();
}
// ==========================================
// Request storage permissions on startup
// ==========================================
document.addEventListener("deviceready", () => {
var permissions = cordova.plugins.permissions;
permissions.checkPermission(permissions.WRITE_EXTERNAL_STORAGE, (status) => {
if (status.hasPermission === false) {
permissions.requestPermission(permissions.WRITE_EXTERNAL_STORAGE);
}
});
})