React native React Native中的DocumentPicker在Android设备上无法正常工作
我已经在我的react本机应用程序中实现了一个文档选择器,它在iOS上运行良好。然而在安卓系统中,我遇到了一个奇怪的问题 当我打开文档选择器,导航到Android手机中的文件浏览器(下载部分),虽然我可以选择pdf文件,但当它回到应用程序时,它会粘在页面上,文件不在那里。我附上了屏幕截图,显示了文件浏览器处理最近文件时的相同行为。只有当从最近的文件中,我选择谷歌驱动器并尝试从那里选择pdf时,它才能按预期工作,我可以在我的应用程序中看到文件,并且应用程序不会卡住 以下是我为pdf文档选择器编写的内容React native React Native中的DocumentPicker在Android设备上无法正常工作,react-native,upload,document,picker,React Native,Upload,Document,Picker,我已经在我的react本机应用程序中实现了一个文档选择器,它在iOS上运行良好。然而在安卓系统中,我遇到了一个奇怪的问题 当我打开文档选择器,导航到Android手机中的文件浏览器(下载部分),虽然我可以选择pdf文件,但当它回到应用程序时,它会粘在页面上,文件不在那里。我附上了屏幕截图,显示了文件浏览器处理最近文件时的相同行为。只有当从最近的文件中,我选择谷歌驱动器并尝试从那里选择pdf时,它才能按预期工作,我可以在我的应用程序中看到文件,并且应用程序不会卡住 以下是我为pdf文档选择器编写的
selectPDF = async ()=>{
var imageList = [...this.state.files];
try {
const results = await DocumentPicker.pickMultiple({
type: [DocumentPicker.types.pdf],
});
for (const res of results) {
console.log(
res.uri,
res.type, // mime type
res.name,
res.size
);
const fileName = res.uri.replace("file://","");
let data1 = ''
RnFetchBlob.fs.readStream(
fileName,
'base64',
4095
)
.then((ifstream)=>{
//let data1 = ''
ifstream.open()
ifstream.onData((data)=>{
data1 += data;
})
ifstream.onEnd(() => {
let base64 = data1
imageList.push({
imageName:res.name,
image:base64,
mime:res.type,
size:res.size
})
this.setState({
...this.state,
openCamera:false,
lastFileName:imageList[imageList.length - 1].imageName,
files:imageList
})
})
})
}
} catch (err) {
if (DocumentPicker.isCancel(err)) {
this.closeModal();
} else {
throw err;
}
}
}
谁能告诉我我可能错过了什么。是否需要在设备级别或任何其他方面设置某些配置。您可以使用类似的方式
const [file, setFile] = useState(null);
现在可以在函数中调用file
要使用它,你可以这样做
<TouchableOpacity
activeOpacity={0.5}
onPress={selectFile}>
<Text>Select File</Text>
</TouchableOpacity>
选择文件
这方面有什么帮助吗
<TouchableOpacity
activeOpacity={0.5}
onPress={selectFile}>
<Text>Select File</Text>
</TouchableOpacity>