必须在application.xml中声明文件类型后,才能调用setasdefaultapplication();启动时需检查issetasdefaultapplication(),用户确认后同步调用setasdefaultapplication(),未声明扩展名会直接抛异常崩溃。

要让Adobe AIR应用程序在双击特定后缀名的文件时自动启动并处理该文件,必须在安装前完成文件类型声明,并在运行时主动检查和设置默认打开关联。未声明的扩展名调用关联方法会直接抛出异常,导致程序崩溃。
在应用描述符中声明文件类型
这一步是强制前提,【缺少此步骤,后续所有setAsDefaultApplication()调用都会失败】。打开项目根目录下的 application.xml(或 AppName-app.xml),在 <application></application> 标签下添加 <filetypes></filetypes> 节点:
在 <filetypes></filetypes> 内插入一个 <filetype></filetype> 块,按顺序填写:唯一标识名(如 com.example.myapp.config)、不带点的扩展名(如 mycfg)、人类可读描述(如 MyApp 配置文件)、MIME 类型(如 application/x-mycfg)以及可选图标路径。
扩展名字段必须小写且不含“.”,例如写 log,不能写 .log 或 LOG;否则安装时系统无法识别,关联将无效。
启动时检查并设置默认打开方式
用户设备上可能已有其他程序占用了该扩展名,默认关联不会被AIR安装程序覆盖。因此每次启动都应主动验证并按需接管。
第一步:在主应用初始化完成后,调用 NativeApplication.nativeApplication.isSetAsDefaultApplication("mycfg") 检查当前是否已关联。
第二步:如果返回 false,弹出确认对话框询问用户是否将 .mycfg 文件交由本程序打开——这是尊重用户选择的必要交互,不能静默覆盖。
支持将 Adobe Illustrator(.ai)文件转换为 PNG 格式,提供单文件转换与批量处理能力,支持自定义 DPI、透明背景输出,并通过 Inkscape、Ghostscript 和 pdf2image 多后端自动回退机制保障转换可靠性。适用于以下场景:用户在无 Adobe Illustrator 环境下导出 AI 设计资源;批量转换设计源文件;或为网页、PPT 及运营工作流准备 PNG 资产。
第三步:用户点击“确定”后,立即执行 NativeApplication.nativeApplication.setAsDefaultApplication("mycfg")。该操作需在主线程同步调用,异步执行会导致权限拒绝错误。
注意:此方法仅对已在描述符中声明的扩展名有效;传入未声明的字符串(如 "xyz")会触发未捕获的运行时异常,应用闪退。
验证和清理关联的辅助方法
方法一:获取当前关联的应用路径
调用 NativeApplication.nativeApplication.getDefaultApplication("mycfg") 可返回一个字符串,内容为已关联程序的完整磁盘路径(如 Windows 下为 C:\Program Files\Notepad++\notepad++.exe)。若返回空字符串,说明该扩展名尚未被任何程序关联。
方法二:手动解除当前关联
当用户在设置页点击“恢复系统默认”时,执行 NativeApplication.nativeApplication.removeAsDefaultApplication("mycfg") 即可清除本应用对该扩展名的绑定。此操作不可逆,且不会影响其他已声明的扩展名。










