0

0

MAUI怎么打开另一个应用 MAUI Launcher API用法

畫卷琴夢

畫卷琴夢

发布时间:2026-01-07 08:20:02

|

456人浏览过

|

来源于php中文网

原创

MAUI 中打开外部应用主要依赖 Launcher API,需确认目标应用支持 URL Scheme 或 Intent/Universal Link,并在 AndroidManifest.xml 或 Info.plist 中声明相应配置,调用前必须使用 CanOpenAsync 检查可用性。

maui怎么打开另一个应用 maui launcher api用法

在 MAUI 中打开另一个应用,主要靠 Launcher API(`Microsoft.Maui.Controls.Launcher`),它封装了平台底层的“启动外部应用”能力,比如打开微信浏览器、邮件客户端,或用自定义 URL Scheme 启动其他 App。

确认目标应用支持外部调用

不是所有 App 都能被随意打开。你需要先确认目标 App 是否注册了可被调用的协议(URL Scheme)或 Intent(Android)/Universal Link(iOS)。例如:

  • 微信:`weixin://`(部分功能受限,iOS 上需白名单)
  • 系统浏览器:`https://example.com`(会被系统默认浏览器处理)
  • 邮件:`mailto:test@example.com`
  • 自定义 App:如 `myapp://open?param=1`(需对方 App 在 AndroidManifest.xml 或 Info.plist 中正确声明)

使用 Launcher.OpenAsync() 启动链接或应用

这是最常用的方式,适用于已知 URL Scheme 或标准 URI(如 http、mailto、tel):

try
{
    bool canOpen = await Launcher.CanOpenAsync("https://microsoft.com");
    if (canOpen)
    {
        await Launcher.OpenAsync("https://microsoft.com");
    }
    else
    {
        // 提示用户手动安装或打开方式
        await Toast.Make("无法打开链接").Show();
    }
}
catch (Exception ex)
{
    // 处理异常(如未注册 scheme、权限拒绝等)
}

注意:Android 12+ 和 iOS 要求目标 scheme 必须提前在清单文件中声明或通过 App Store 审核白名单,否则 `CanOpenAsync` 返回 false 或直接失败。

Cursor Directory
Cursor Directory

专为Cursor设计的开源资源库、提示词库

下载

Android 特殊情况:用 Intent 显式启动(进阶)

若目标 App 提供了明确的包名(package name)和 Activity 名,且你有权限(如同一开发者签名或已适配 Android 11+ 的 ),可借助平台原生能力:

  • Platforms/Android/AndroidManifest.xml 标签下添加查询声明:

  
  • 然后在 C# 中调用(需平台判断):
#if ANDROID
var intent = new Android.Content.Intent();
intent.SetPackage("com.example.otherapp");
intent.SetAction(Android.Content.Intent.ActionMain);
intent.AddCategory(Android.Content.Intent.CategoryLauncher);
intent.AddFlags(Android.Content.Intent.FlagActivityNewTask);

try { Microsoft.Maui.ApplicationModel.Platform.CurrentActivity.StartActivity(intent); } catch (Android.Content.ActivityNotFoundException) { // App 未安装 }

endif

iOS 注意事项:LSApplicationQueriesSchemes 和 Universal Links

iOS 更严格:

  • 若用自定义 scheme(如 myapp://),必须在 Platforms/iOS/Info.plist 中添加 LSApplicationQueriesSchemes 数组,列出允许查询的 scheme:
LSApplicationQueriesSchemes

  myapp
  weixin
  • 推荐优先使用 Universal Links(https 链接 + 关联域名),体验更好、无需 scheme 白名单,但需要对方 App 和服务器配合配置。

基本上就这些。Launcher API 看似简单,实际成败关键在目标 App 的配置和平台合规性。别跳过 CanOpenAsync 检查,也别忽略各平台的清单声明——漏掉一个,就可能在真机上静默失败。

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1861

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2084

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

958

2024.11.28

android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

261

2023.08.14

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

1728

2023.08.22

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

1973

2023.09.19

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

267

2023.10.18

Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

343

2024.03.01

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 11万人学习

Java 教程
Java 教程

共578课时 | 43.3万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号