0

我在 Xamarin.Forms (PCL) 中编程,我看过很多帖子,但没有一个适合我。我正在使用插件PhoneCall.Forms.Plugin 我创建了一个方法来使用包含下一个代码的按钮进行调用

try
{
    var PhoneCallTask = CrossMessaging.Current.PhoneDialer;
    if (PhoneCallTask.CanMakePhoneCall)
    {
        PhoneCallTask.MakePhoneCall("+528331607211", "Laura");
    }
    else
    {
        DisplayAlert("Llamada", "No se puede hacer llamada", "Ok");
    }
}

它抛出一个错误:

System.NotlmplementedException:此程序集的可移植版本中未实现此功能。您应该从主应用程序项目中引用 NuGet 包,以便引用特定于平台的实现。

部署停止

4

3 回答 3

0

如果您正在使用此插件(我不确定这是否是您正在使用的特定插件),那么您需要使用依赖服务拨打电话(插件自述文件中对此进行了解释)。

在你的 PCL 项目中创建一个方法来调用依赖服务:

private void QCall(string number)
{
    var notificator = DependencyService.Get<IPhoneCall>();
    notificator.MakeQuickCall (number);
}

在每个平台特定的项目中,初始化插件。对于Android,这将在您的OnCreate方法中完成MainActivity,对于iOS,AppDelegateFinishedLaunching方法中完成。在 Xamarin.Forms 的初始化之后,将以下行添加到每个:

PhoneCallImplementation.Init();

然后,当您调用QCall()PCL 项目时,它将运行用户所在特定平台所需的代码。

于 2017-10-17T22:09:10.567 回答
0

你试过消息插件吗?就像杰森在这里所说的那样。

于 2017-10-17T20:24:01.083 回答
0

尝试:

Device.OpenUri(new Uri("tel:528331607211"));

于 2017-10-17T22:04:53.037 回答