如何在Windows App SDK WinUI 3应用中实现SMS消息发送?
Windows 11 桌面应用唤起短信窗口方案(Windows App SDK)
以下是几个适配你需求的落地方案,都是开发者实际项目中验证过的思路:
一、利用系统SMS URI协议唤起默认短信应用(推荐)
Windows 11 默认通过「Phone Link」实现跨设备短信联动,系统支持标准的sms: URI协议,能直接唤起短信窗口并预填内容,和Mac「Messages」的体验逻辑一致。
实现代码(C#)
在Windows App SDK项目中,通过Launcher类调用URI即可:
using Windows.System; // 仅预填消息内容,让用户自行选择收件人 var smsUri = new Uri("sms:?body=你的预填消息内容"); await Launcher.LaunchUriAsync(smsUri); // 同时指定收件人+预填内容 var smsUriWithRecipient = new Uri("sms:+1234567890?body=你的预填消息内容"); await Launcher.LaunchUriAsync(smsUriWithRecipient);
注意事项
- 用户需提前通过「Phone Link」完成手机与Windows 11的配对,这是Windows 11用户的常规操作,无需额外安装软件;
- URI中的中文或特殊字符需做URL编码,例如
body=Hello%20世界; - 此方式会唤起系统默认短信窗口,用户可修改内容、选择/添加收件人后直接发送,完全匹配你的需求。
二、关于Microsoft Teams的适配说明
你原本计划集成Teams,但Teams的核心是内部即时聊天,而非SMS短信:
- Teams支持
msteams:URI唤起聊天窗口,示例如下:
但这仅能发送Teams内部消息,无法触发真正的SMS短信,仅适合双方都在Teams生态内的场景,和你需要的SMS功能不匹配,因此不推荐用Teams实现该需求。msteams://l/chat/0/0?users=user@example.com&message=预填的聊天内容
三、备选:后台短信API(非唤起窗口)
若无需用户交互,仅需后台自动发送SMS,可使用Twilio、阿里云短信等第三方服务API,但这种方式无法让用户选择收件人,仅适合固定场景的自动发送,不符合你当前的需求。
内容的提问来源于stack exchange,提问作者user1094779
相关产品推荐
相关产品推荐

