UWP 使用skype 呼叫号码

UWP use skype to call number

我希望我的 c# UWP 应用支持呼叫号码。

当我使用 W10 移动设备时,我希望它使用 W10 PhoneCall API 正常(这是有效的)

Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI(number, name);

但是在 W10 Desktop/PC 我没有 GSM 供应商,所以我想,也许可以使用 skype 来拨打这个号码,用户按下了。

可以通过 UWP 实现吗?可能类似于打开网站:

await Windows.System.Launcher.LaunchUriAsync(new Uri(website));

是的,这是可能的,而且您使用 Launch the default app for a URI 从您的应用程序打开 Skype 是正确的。

关于我们可以使用什么Uri的问题,可以参考Skype development

这是示例代码,这将打开 "Skype" 并调用 "Echo/Sound Test Service":

private async void OnClick(object sender, RoutedEventArgs e)
{
    var uriSkype = new Uri(@"Skype:echo123?call");

    // Set the option to show a warning
    var promptOptions = new Windows.System.LauncherOptions();
    promptOptions.TreatAsUntrusted = true;

    // Launch the URI
    var success = await Windows.System.Launcher.LaunchUriAsync(uriSkype, promptOptions);

    if (success)
    {
        // URI launched
    }
    else
    {
        // URI launch failed
    }
}

如果你想拨打号码,你可以使用:

var uriSkype = new Uri(@"Skype:(number)?call");

或者您也可以通过skype id拨打:

var uriSkype = new Uri(@"Skype:(skype id)?call");

此解决方案仅在您的 PC 上已安装 Skype 时有效。如果系统在您的 PC 上找不到 Skype,它将打开商店并显示推荐的注册此协议的应用程序。