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 ответа
Если вы используете этот плагин (я не уверен, является ли он тем, который вы используете, или нет), то вам нужно позвонить, используя службу зависимости (это объясняется в файле 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 он будет запускать код, необходимый для конкретной платформы, на которой работает пользователь.