我正在使用C#中的WinRT开发Windows应用商店应用。
我想创建一个用户可以点击/点按的按钮或链接,并使用该设备的默认应用来拨打电话。
更好的是,如果用户可以选择要使用的应用程序(如果安装了多个应用程序),那也会很好。
我正在寻找类似于如何从网络浏览器点击tel://01234567890
链接的行为,浏览器将其关闭到手机/设备,以便用户可以拨打电话。
考虑到这一点 -
在手机上,它往往是手机应用,或选择是否有多个可以拨打电话的应用
在安装了可以拨打电话的应用程序(例如Skype)的PC上,单击tel://
链接会默认打开它(浏览器通常会事先询问)
到处搜索我已经找到了Windows Phone 8.1的所有内容。但在Win 8 / 8.1中使用Windows RunTime的Windows Store应用程序没有任何内容。
请注意:我不是专门希望通过在应用中拨打电话,更多是打开设备的默认应用使用。但是,我对选项持开放态度,所以如果还有一种方法可以在应用程序中执行此操作,我也会考虑这一点。
这可能吗?我可能需要API或库吗?
提前谢谢。
答案 0 :(得分:1)
我设法提出了一个解决方案,以便在问题中获得所描述的行为。
我使用了相同的tel://
"链接"我在问题中谈到的概念。
我提出的解决方案:
这就像一行一样简单:
private async Task MakePhoneCall(string phoneNumber)
{
await Launcher.LaunchUriAsync(new Uri($"tel://{phoneNumber}"));
}
在Launcher
命名空间(Windows.System
)中找到using Windows.System;
静态类。
希望将来可以帮助其他人:)
答案 1 :(得分:0)
@Geoff有一个很好的答案,我有另一个。
您可以使用PhoneCallManager在设备移动时呼叫,并在设备为PC时使用Skype呼叫。
如果该设备是移动设备,您可以使用Windows.ApplicationModel.Calls.PhoneCallManager.ShowPhoneCallUI
拨打该号码。并且已选中该设备是否可以移动。
if (Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Mobile")
{
Windows.ApplicationModel.Calls.PhoneCallManager
.ShowPhoneCallUI("The number you call",
"The pople's name that is the number ower");
}
就像http://jycloud.9uads.com/web/GetObject.aspx?filekey=c0df6586a5d486d0ce7cd9447fd75f59
一样使用时,应包括Windows Mobile Extensions
http://jycloud.9uads.com/web/GetObject.aspx?filekey=9913efb448c7510d822e4c6dcc570c55
如果您的设备是个人电脑,您也可以使用Skype拨打电话。
private async void Button_OnClick(object sender, RoutedEventArgs e)
{
Uri url=new Uri(@"Skype:number?call");
var areSkypeCall = await Windows.System.Launcher.LaunchUriAsync(url);
if (areSkypeCall)
{
//Success
}
}
Uri的格式是" Skype:" + number +"?call"或者" Skype:" + skype id +"?call"。
http://jycloud.9uads.com/web/GetObject.aspx?filekey=9913efb448c7510d822e4c6dcc570c55