我正在尝试使用Expo v32实施文档选择器。该组件会正确打开,关闭和上传。但是,Android的文档选择器仅允许我选择图像。
我尝试指定文件的MIME类型:例如application/msword, application/vnd.ms-excel
。但这仍然行不通。我还尝试在getDocumentAsync调用中设置{ type: "*/*" }
,但没有成功。
import React, { Component } from 'react'
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { DocumentPicker } from 'expo';
import { TouchableOpacity, Text } from 'react-native'
import { postDocument } from '../../../actions/deal'
class AddFiles extends Component {
_pickDocument = async () => {
// Get the document from picker and upload with API
let result = await DocumentPicker.getDocumentAsync({});
if(result.type == 'success'){
this.props.postDocument(this.props.dealId, result)
}
}
render(){
return(
<TouchableOpacity onPress={this._pickDocument}>
<Text>
Add Files
</Text>
</TouchableOpacity>
)
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators({ postDocument }, dispatch)
}
export default connect(null, mapDispatchToProps)(AddFiles)
我希望看到所有可能的文件可供选择,但是我只能选择图像。
对我想念的东西有任何想法吗?
答案 0 :(得分:0)
因此该代码实际上有效,但是有一个陷阱:
Expo的文档选择器-默认情况下-不允许允许添加Google文档,表格或幻灯片。
所有那些“禁用”的文件都是Google云端硬盘文件。将它们转换为正确的.docx
或.xls
之后,它们就会起作用。
要添加Google驱动器文件,您需要指定其MIME类型:
application/vnd.google-apps.document
application/vnd.google-apps.spreadsheet
application/vnd.google-apps.presentation
所有Google云端硬盘Mime类型都在这里:https://developers.google.com/drive/api/v3/mime-types