Xamarin.Forms(PCL)项目中的NotlmplementedException

时间:2017-10-17 18:22:27

标签: xamarin xamarin.forms portable-class-library notimplementedexception

我正在使用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包,以引用特定于平台的实现。

Deploy stops

3 个答案:

答案 0 :(得分:0)

您是否尝试过Messaging插件? 就像杰森here所说的那样。

答案 1 :(得分:0)

尝试:

etc..

答案 2 :(得分:0)

如果您正在使用this plugin(我不确定这是否是您正在使用的特定部分),那么您需要使用依赖性服务拨打电话(这在插件自述)。

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

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

在每个特定于平台的项目中,初始化插件。对于Android,这将使用OnCreate的{​​{1}}方法和MainActivity方法中的AppDelegate中的iOS进行。在初始化Xamarin.Forms之后,为每个添加以下行:

FinishedLaunching

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