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

如何让.NET MAUI应用关联特定扩展名文件实现双击打开?

.NET MAUI 实现双击特定扩展名文件启动应用并打开文件

一、Windows 平台配置(核心步骤)

1. 自动配置文件关联(通过安装包)

要让系统把你的应用和特定扩展名绑定,得在Windows注册表加配置,用WiX或者Inno Setup做安装包时自动完成:

  • 先注册扩展名:比如要关联.myext,就在HKEY_CLASSES_ROOT\.myext里把默认值设成你的应用ProgID(比如MyMauiApp.File)
  • 定义ProgID:在HKEY_CLASSES_ROOT\MyMauiApp.File下设置默认值为文件类型的描述(比如“我的MAUI应用文件”),再建shell\open\command子项,默认值填你的MAUI应用路径加 "%1"(引号不能少,用来处理带空格的文件路径)
  • 可选加图标:在ProgID下面建DefaultIcon子项,默认值设成应用图标的路径

2. MAUI应用接收文件路径

在Windows项目的Platforms/Windows/App.xaml.cs里,重写OnLaunched方法来拿命令行里的文件路径:

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    base.OnLaunched(args);

    // 双击文件时,命令行第一个参数就是文件路径
    if (!string.IsNullOrEmpty(args.Arguments))
    {
        var filePath = args.Arguments.Trim('"'); // 去掉路径两端的引号
        if (File.Exists(filePath))
        {
            // 把文件路径传给主页面处理
            if (App.Current.MainPage is MainPage mainPage)
            {
                mainPage.OpenFile(filePath);
            }
        }
    }
}

然后在主页面加个OpenFile方法,写读取、展示文件内容的逻辑就行。

二、跨平台适配(如果要支持其他系统)

macOS

在Platforms/MacOS/Info.plist里加文件关联配置:

  • 加CFBundleDocumentTypes数组,指定CFBundleTypeName(文件类型名称)、LSHandlerRank设为Owner、LSItemContentTypes填自定义UTI(比如com.mymauiapp.myext)
  • 再加UTExportedTypeDeclarations数组,定义这个自定义UTI的细节,包括UTTypeIdentifier、UTTypeTagSpecification里关联扩展名.myext

Android

在Platforms/Android/AndroidManifest.xml里加<intent-filter>,让应用能响应打开文件的请求:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:mimeType="*/*" />
    <data android:pathPattern=".*\\.myext" />
</intent-filter>

然后在MainActivity的OnCreate或者OnNewIntent方法里拿到文件Uri,处理打开逻辑。

三、注意点

  • 安装完应用后,最好重启资源管理器或者注销再登录,确保注册表配置生效
  • 如果应用已经在运行,Windows平台可以用AppInstance.GetActivatedEventArgs()获取激活参数,处理新的文件打开请求
  • macOS和Android的配置要严格遵循各自平台的规则,别写错权限和类型声明

内容的提问来源于stack exchange,提问作者Miodek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:52:53