NotlmplementedException в проекте Xamarin.Forms (PCL)

Я программирую в 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 из вашего основного проекта приложения, чтобы ссылаться на реализацию для конкретной платформы.

Развертывание остановок

3 ответа

Вы пробовали плагин Messaging? Как сказал здесь Джейсон.

Пытаться:

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

Если вы используете этот плагин (я не уверен, является ли он тем, который вы используете, или нет), то вам нужно позвонить, используя службу зависимости (это объясняется в файле readme для плагина).

Создайте метод в вашем проекте PCL для вызова службы зависимости:

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

В каждом конкретном проекте платформы инициализируйте плагин. Для Android это будет сделано в OnCreate метод вашего MainActivityи для iOS в AppDelegate в FinishedLaunching метод. Добавьте следующую строку к каждой после инициализации Xamarin.Forms:

PhoneCallImplementation.Init();

Затем, когда вы звоните QCall() в вашем проекте PCL он будет запускать код, необходимый для конкретной платформы, на которой работает пользователь.

Другие вопросы по тегам