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

如何从浏览器打开MAUI macOS应用?配置URL Scheme后无效求解决方案

MAUI macOS 应用通过浏览器URL唤起的解决方案

第一步:修正Plist配置错误

你当前的plist配置存在键名错误,重复使用了CFBundleURLTypes,正确的键应为CFBundleURLRole来定义应用角色。修正后的配置如下:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>com.xxx.xxxx</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fooo</string>
    </array>
    <key>CFBundleURLRole</key>
    <string>Viewer</string>
  </dict>
</array>

第二步:在MAUI中处理URL唤起事件

  1. 修改MacCatalyst平台的AppDelegate.cs(路径:Platforms/MacCatalyst/AppDelegate.cs),重写OpenUrl方法捕获URL:
using Foundation;
using UIKit;

namespace YourAppNamespace;

[Register("AppDelegate")]
public class AppDelegate : MauiUIApplicationDelegate
{
    protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();

    public override bool OpenUrl(UIApplication application, NSUrl url, NSDictionary options)
    {
        var urlString = url.AbsoluteString;
        // 切换到MAUI主线程处理URL
        MainThread.BeginInvokeOnMainThread(() =>
        {
            var app = (App)Application.Current;
            app.HandleOpenUrl(urlString);
        });

        return base.OpenUrl(application, url, options);
    }
}
  1. 在共享项目的App类中添加URL处理逻辑:
public partial class App : Application
{
    public App()
    {
        InitializeComponent();
        MainPage = new MainPage();
    }

    public void HandleOpenUrl(string url)
    {
        // 自定义URL解析与业务逻辑,示例:处理fooo://item/123这类链接
        if (url.StartsWith("fooo://"))
        {
            var parts = url.Split(new[] { "://", "/" }, StringSplitOptions.RemoveEmptyEntries);
            if (parts.Length > 1)
            {
                // 导航到对应页面
                MainPage.Navigation.PushAsync(new DetailPage(parts[1]));
            }
        }
    }
}

第三步:验证与排查

  • 清理项目后重新构建部署到Mac设备
  • 在浏览器地址栏输入fooo://test测试唤起
  • 若仍不生效,检查:
    • plist修改已同步到部署包
    • CFBundleURLName与项目Bundle ID完全一致
    • 测试前关闭应用所有运行实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:57:24