Expo Document Picker禁用Android上的文档

时间:2019-06-05 00:57:48

标签: android google-drive-api expo

我正在尝试使用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)

我希望看到所有可能的文件可供选择,但是我只能选择图像。

对我想念的东西有任何想法吗?

1 个答案:

答案 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