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

如何在Uno框架中通过MenuFlyoutItem命令打开指定URL的浏览器窗口?

在Uno中打开Web URL的实现方法

核心实现思路

Uno平台适配了Windows.System.Launcher类,可跨平台调用系统默认浏览器打开指定URL,直接在命令处理方法中调用其异步方法即可完成需求。

步骤1:编写命令处理逻辑

在ViewModel或代码后台中实现命令执行方法,接收URL参数并启动浏览器:

using Windows.System;

// 命令处理方法
private async void OnOpenWebUrl(object parameter)
{
    if (parameter is string url && Uri.TryCreate(url, UriKind.Absolute, out var targetUri))
    {
        await Launcher.LaunchUriAsync(targetUri);
    }
}

如果使用MVVM模式(比如RelayCommand),可在ViewModel中定义绑定用的命令:

using System.Windows.Input;
using Microsoft.Toolkit.Mvvm.Input;

public class YourViewModel
{
    public ICommand OpenWebUrlCommand { get; }

    public YourViewModel()
    {
        // 初始化命令,指定参数类型为string
        OpenWebUrlCommand = new RelayCommand<string>(OnOpenWebUrl);
    }

    private async void OnOpenWebUrl(string url)
    {
        if (!string.IsNullOrWhiteSpace(url) && Uri.TryCreate(url, UriKind.Absolute, out var targetUri))
        {
            await Launcher.LaunchUriAsync(targetUri);
        }
    }
}

步骤2:绑定MenuFlyoutItem的命令与参数

在XAML中给MenuFlyoutItem绑定命令,并通过CommandParameter传递目标URL:

<MenuFlyoutItem Text="打开官方网站"
                Command="{Binding OpenWebUrlCommand}"
                CommandParameter="https://your-target-url.com"/>

跨平台适配说明

  • Windows/桌面端:调用系统默认浏览器打开URL
  • Android/iOS:唤起系统自带浏览器应用
  • WebAssembly:在浏览器新标签页中打开URL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:13:14