nativescript-mediafilepicker仅显示jpg文件无法展示pdf等格式文件问题咨询
问题原因
- 你在代码中手动限定了可选文件的扩展名范围,未覆盖所有文件类型:安卓端extensions数组仅配置了
txt、pdf、jpg三个扩展名,iOS端仅配置了PDF、文本两类系统UTI类型,选择器只会展示你指定范围内的文件,你当前仅看到jpg文件大概率是测试目录下只有jpg格式的文件匹配你设置的可选范围。 - nativescript-mediafilepicker默认不会主动展示所有类型文件,必须通过配置明确告知选择器可选择的文件范围。
解决方案
如果需要允许选择任意扩展名的文件,修改extensions配置即可:
- 安卓端不设置extensions参数或者传入空数组,即可默认支持所有类型文件
- iOS端传入
kUTTypeItem(所有文件类型的通用UTI常量)即可匹配所有格式的文件,使用前需确保引入MobileCoreServices框架
修正后代码如下:
public openCustomFilesPicker() { let extensions = []; if (Application.ios) { extensions = [kUTTypeItem]; } else { extensions = []; } let options: FilePickerOptions = { android: { extensions: extensions, maxNumberFiles: 2, }, ios: { extensions: extensions, multipleSelection: true, hostView: this._hostView, }, }; let mediafilepicker = new Mediafilepicker(); mediafilepicker.openFilePicker(options); mediafilepicker.on("getFiles", function (res) { let results = res.object.get("results"); console.dir(results); if (results) { for (let i = 0; i < results.length; i++) { let result = results[i]; console.log(result.file); } } }); mediafilepicker.on("error", function (res) { let msg = res.object.get("msg"); console.log(msg); }); mediafilepicker.on("cancel", function (res) { let msg = res.object.get("msg"); console.log(msg); }); }
内容的提问来源于stack exchange,提问作者pat
相关产品推荐
相关产品推荐

