Request write permission on Android <11
This commit is contained in:
parent
3475b3c69f
commit
8dc99ca2c1
5 changed files with 56 additions and 12 deletions
|
@ -1,5 +1,5 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?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="orientation" value="sensorLandscape" />
|
||||||
<preference name="Fullscreen" value="true" />
|
<preference name="Fullscreen" value="true" />
|
||||||
|
|
||||||
|
@ -25,7 +25,12 @@
|
||||||
<platform name="android">
|
<platform name="android">
|
||||||
<config-file target="AndroidManifest.xml" parent="/*" xmlns:android="http://schemas.android.com/apk/res/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.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>
|
</config-file>
|
||||||
|
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
|
||||||
|
<application android:requestLegacyExternalStorage="true" />
|
||||||
|
</edit-config>
|
||||||
</platform>
|
</platform>
|
||||||
|
|
||||||
<name>OMORI</name>
|
<name>OMORI</name>
|
||||||
|
|
13
package-lock.json
generated
13
package-lock.json
generated
|
@ -10,6 +10,7 @@
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"cordova-android": "^12.0.1",
|
"cordova-android": "^12.0.1",
|
||||||
|
"cordova-plugin-android-permissions": "^1.1.5",
|
||||||
"cordova-plugin-file": "^8.0.1",
|
"cordova-plugin-file": "^8.0.1",
|
||||||
"cordova-plugin-fullscreen": "^1.3.0",
|
"cordova-plugin-fullscreen": "^1.3.0",
|
||||||
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
|
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
|
||||||
|
@ -242,6 +243,18 @@
|
||||||
"node": ">=16.0.0"
|
"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": {
|
"node_modules/cordova-plugin-file": {
|
||||||
"version": "8.0.1",
|
"version": "8.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-8.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-8.0.1.tgz",
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"cordova-android": "^12.0.1",
|
"cordova-android": "^12.0.1",
|
||||||
|
"cordova-plugin-android-permissions": "^1.1.5",
|
||||||
"cordova-plugin-file": "^8.0.1",
|
"cordova-plugin-file": "^8.0.1",
|
||||||
"cordova-plugin-fullscreen": "^1.3.0",
|
"cordova-plugin-fullscreen": "^1.3.0",
|
||||||
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
|
"cordova-plugin-gamepad": "github:OleSTEEP/cordova-plugin-gamepad",
|
||||||
|
@ -29,7 +30,8 @@
|
||||||
"cordova-plugin-gamepad": {},
|
"cordova-plugin-gamepad": {},
|
||||||
"cordova-plugin-file": {
|
"cordova-plugin-file": {
|
||||||
"ANDROIDX_WEBKIT_VERSION": "1.4.0"
|
"ANDROIDX_WEBKIT_VERSION": "1.4.0"
|
||||||
}
|
},
|
||||||
|
"cordova-plugin-android-permissions": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -350,13 +350,13 @@ document.addEventListener("deviceready", () => {
|
||||||
fileEntry.createWriter(function (fileWriter) {
|
fileEntry.createWriter(function (fileWriter) {
|
||||||
|
|
||||||
fileWriter.onerror = function (e) {
|
fileWriter.onerror = function (e) {
|
||||||
console.log("Failed file write: " + e.toString());
|
console.log(`Failed file write: Error ${e.code}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
fileWriter.write(data);
|
fileWriter.write(data);
|
||||||
});
|
});
|
||||||
}, (e) => {
|
}, (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) {
|
fileEntry.createWriter(function (fileWriter) {
|
||||||
|
|
||||||
fileWriter.onerror = function (e) {
|
fileWriter.onerror = function (e) {
|
||||||
console.log("Failed file write: " + e.toString());
|
console.log(`Failed file write: Error ${e.code}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
fileWriter.write(data);
|
fileWriter.write(data);
|
||||||
});
|
});
|
||||||
}, (e) => {
|
}, (e) => {
|
||||||
console.log("Error to create external file: " + e.toString());
|
console.log(`Error to create external file: Error ${e.code}`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -394,4 +394,16 @@ SceneManager.terminate = function () {
|
||||||
|
|
||||||
window.close = function() {
|
window.close = function() {
|
||||||
navigator.app.exitApp();
|
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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
|
@ -353,13 +353,13 @@ document.addEventListener("deviceready", () => {
|
||||||
fileEntry.createWriter(function (fileWriter) {
|
fileEntry.createWriter(function (fileWriter) {
|
||||||
|
|
||||||
fileWriter.onerror = function (e) {
|
fileWriter.onerror = function (e) {
|
||||||
console.log("Failed file write: " + e.toString());
|
console.log(`Failed file write: Error ${e.code}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
fileWriter.write(data);
|
fileWriter.write(data);
|
||||||
});
|
});
|
||||||
}, (e) => {
|
}, (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) {
|
fileEntry.createWriter(function (fileWriter) {
|
||||||
|
|
||||||
fileWriter.onerror = function (e) {
|
fileWriter.onerror = function (e) {
|
||||||
console.log("Failed file write: " + e.toString());
|
console.log(`Failed file write: Error ${e.code}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
fileWriter.write(data);
|
fileWriter.write(data);
|
||||||
});
|
});
|
||||||
}, (e) => {
|
}, (e) => {
|
||||||
console.log("Error to create external file: " + e.toString());
|
console.log(`Error to create external file: Error ${e.code}`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -397,4 +397,16 @@ SceneManager.terminate = function () {
|
||||||
|
|
||||||
window.close = function() {
|
window.close = function() {
|
||||||
navigator.app.exitApp();
|
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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
Loading…
Add table
Add a link
Reference in a new issue