You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

nativescript-mediafilepicker仅显示jpg文件无法展示pdf等格式文件问题咨询

问题原因
  • 你在代码中手动限定了可选文件的扩展名范围,未覆盖所有文件类型:安卓端extensions数组仅配置了txt、pdf、jpg三个扩展名,iOS端仅配置了PDF、文本两类系统UTI类型,选择器只会展示你指定范围内的文件,你当前仅看到jpg文件大概率是测试目录下只有jpg格式的文件匹配你设置的可选范围。
  • nativescript-mediafilepicker默认不会主动展示所有类型文件,必须通过配置明确告知选择器可选择的文件范围。
解决方案

如果需要允许选择任意扩展名的文件,修改extensions配置即可:

  1. 安卓端不设置extensions参数或者传入空数组,即可默认支持所有类型文件
  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:51:02