Есть ли собственное решение для выбора файлов в NativeScript Angular? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь реализовать функцию, позволяющую пользователю загружать файл в моем проекте NativeScript Angular. NativeScript, похоже, не имеет встроенной реализации средства выбора файлов, и существует ограниченное количество доступных плагинов, которые могут выполнить эту работу. Плюс у них свой набор проблем. Самое близкое к моему работоспособному решению - использование nativescript-mediafilepicker , и вместо файлового проводника открывается пустая страница, подобная приведенной ниже.

Screenshot on Motorola One Power. Android Q

Я точно следовал документации и не могу понять, почему она не работает. Вот служба, которую я написал:

payload.service.ts

import { Injectable } from '@angular/core';
import { Mediafilepicker, ImagePickerOptions, VideoPickerOptions, AudioPickerOptions, 
FilePickerOptions } from 'nativescript-mediafilepicker';

@Injectable({
  providedIn: 'root'
})
export class PayloadService {

  constructor() { }

  pickFile(){
    console.log('Pick File Payload Service requested');
    const extensions = ['pdf'];
    let options: FilePickerOptions = {
      android: {
        extensions: extensions,
        maxNumberFiles: 1
      },
      ios: {
        extensions: extensions,
        multipleSelection: false
      }
    };
    let mediafilepicker = new Mediafilepicker(); 
    mediafilepicker.openFilePicker(options);

    mediafilepicker.on("getFiles", function (res) {
      let results = res.object.get('results');
      console.dir('File Pick Success: ',results);
    });

    mediafilepicker.on("error", function (res) {
      let msg = res.object.get('msg');
      console.log('File Pick Error: ',msg);
    });

    mediafilepicker.on("cancel", function (res) {
      let msg = res.object.get('msg');
      console.log('File Pick Cancel: ',msg);
    });
   }
 }

Может кто-нибудь помочь мне исправить это или, скорее, предоставить мне нативную реализацию? Мне не нужно много настроек, и пользователь будет загружать только один файл за раз.

...