我正在使用Android的FileChooser离子插件和IOS的FilePicker插件。如果我使用相同的代码来构建android和IOS应用,则会出现FilePicker插件无法添加到Android的错误。 当前要在不同平台上构建应用程序,我将为iOS构建和android构建维护两个不同的分支。
我只想在一个分支上维护我的代码。我该怎么办?
无效的解决方案:
config.xml
的平台下添加插件答案 0 :(得分:1)
您可以添加特定于平台的检查并相应地使用插件。
import { Platform } from 'ionic-angular';
import { FileChooser } from '@ionic-native/file-chooser';
import { FilePath } from '@ionic-native/file-path';
import { IOSFilePicker } from '@ionic-native/file-picker';
constructor(
private fileChooser: FileChooser,
private filePicker: IOSFilePicker,
private filePath: FilePath,
private platform: Platform) {
}
chooseFile() {
if (this.platform.is('ios')) {
this.pickFileFromIOSDevice();
}
else if (this.platform.is('android')) {
this.pickFileFromAndroidDevice();
}
}
pickFileFromIOSDevice() {
this.filePicker.pickFile()
.then(
uri => {
this.fileName = uri.substring(uri.lastIndexOf("/") + 1);
}
)
.catch(error => {
this.showError(error);
});
}
pickFileFromAndroidDevice() {
this.fileChooser.open()
.then(
uri => {
this.filePath.resolveNativePath(uri)
.then(file => {
this.fileName = file.substring(file.lastIndexOf("/") + 1);
})
.catch(err => console.log(err));
}
)
.catch(error => {
this.showError(error);
});
}