fix(mobile): Fixed issue where files could not downloaded on Android
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove"/>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />
|
||||||
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
||||||
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
|
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
|
||||||
|
|
||||||
|
|||||||
@@ -415,29 +415,13 @@ export class MobileDevice implements MobileDeviceInterface {
|
|||||||
return `${directory}/${filename}`
|
return `${directory}/${filename}`
|
||||||
}
|
}
|
||||||
|
|
||||||
async hasStoragePermissionOnAndroid(): Promise<boolean> {
|
|
||||||
if (Platform.OS !== 'android') {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
const grantedStatus = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE)
|
|
||||||
if (grantedStatus === PermissionsAndroid.RESULTS.GRANTED) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
Alert.alert(
|
|
||||||
'Storage permissions are required in order to download files. Please accept the permissions prompt and try again.',
|
|
||||||
)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
async downloadBase64AsFile(
|
async downloadBase64AsFile(
|
||||||
base64: string,
|
base64: string,
|
||||||
filename: string,
|
filename: string,
|
||||||
saveInTempLocation = false,
|
saveInTempLocation = false,
|
||||||
): Promise<string | undefined> {
|
): Promise<string | undefined> {
|
||||||
const isGrantedStoragePermissionOnAndroid = await this.hasStoragePermissionOnAndroid()
|
if (Platform.OS === 'android') {
|
||||||
|
await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE)
|
||||||
if (!isGrantedStoragePermissionOnAndroid) {
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user