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

Xamarin.Mac 双击关联文件启动应用时如何获取该文件的完整路径

解决方案

该功能确实需要在AppDelegate.cs中编写对应逻辑实现,需分别覆盖两种触发场景:

  • 应用未启动时,双击.atc文件唤起应用
  • 应用已处于运行状态时,双击.atc文件

代码实现示例

1. 启动时获取文件路径

重写FinishedLaunching方法,从启动参数中读取关联文件路径:

public override bool FinishedLaunching(NSApplication app, NSDictionary options)
{
    // 检查是否通过打开关联文件启动应用
    if (options.ContainsKey(NSApplication.LaunchUrlsKey))
    {
        var fileUrls = options[NSApplication.LaunchUrlsKey] as NSUrl[];
        if (fileUrls != null && fileUrls.Length > 0)
        {
            // 获取文件本地完整路径
            string atcFilePath = fileUrls[0].Path;
            // 此处补充你的文件处理逻辑
        }
    }
    return base.FinishedLaunching(app, options);
}

2. 运行中获取文件路径

重写OpenUrls方法,处理应用运行时打开关联文件的请求:

public override void OpenUrls(NSApplication application, NSUrl[] urls)
{
    foreach (var url in urls)
    {
        if (url.PathExtension?.ToLower() == "atc")
        {
            string atcFilePath = url.Path;
            // 此处补充你的文件处理逻辑
        }
    }
}

提示:如果你的应用支持同时打开多个.atc文件,直接遍历返回的urls数组处理所有路径即可,无需限制仅读取第一个元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:36:04