#ios #cordova #ionic3 #filepicker
#iOS #кордова #ionic3 #filepicker
Вопрос:
я разрабатываю приложение Ionic3 и хочу разрешить пользователю загружать файлы со своих устройств. У меня проблема с плагином выбора файлов cordova / phonegap. Я следовал инструкциям здесь :
https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin
Но даже использование простейшего кода, который приведен в документации Ionic, не работает :
import { IOSFilePicker } from '@ionic-native/file-picker/ngx';
constructor(private filePicker: IOSFilePicker) { }
this.filePicker.pickFile()
.then(uri => console.log(uri))
.catch(err => console.log('Error', err));
Я продолжаю получать эту ошибку :
ERROR Error: Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
at IOSFilePicker.pickFile (index.js:27)
Плагин был правильно установлен в app.module.ts с правильным путем ngx.
Вот дополнительная информация о версиях :
- ionic framework: 3.9.2
- Сценарии Ionic App: 3.1.8
- Ядро Angular: 6.0.3
- Интерфейс интерфейса компилятора Angular: 6.0.3
- Узел: 8.11.3
- @ionic-native / средство выбора файлов: 5.4.0
- rxjs: 6.3.3
- машинописный текст: 2.7.2
есть идеи?
Спасибо
Комментарии:
1. вы получаете ошибку, потому что вы импортировали компонент ionic 4 и используете ionic 3.
2. проверьте мой ответ.
Ответ №1:
Установить плагин :
ionic cordova plugin add cordova-plugin-filepicker
npm install --save @ionic-native/file-picker@4
Добавьте в свой модуль приложения
import { IOSFilePicker } from '@ionic-native/file-picker';
@NgModule({
..
providers:[
IOSFilePicker
]
})
Теперь используйте в своем компоненте страницы
import { IOSFilePicker } from '@ionic-native/file-picker';
класс …
конструктор (private filePicker: IOSFilePicker) { }
getFile(){
this.filePicker.pickFile()
.then(uri => console.log(uri))
.catch(err => console.log('Error', err));
}
Ссылка. https://ionicframework.com/docs/v3/native/ios-file-picker /
Комментарии:
1. Понижение плагина до версии 4 и удаление ngx из пути исправили мою проблему. Спасибо
2. если вы создаете новый проект, лучше использовать ionic 4