0

Je suis en train de programmer en Xamarin.Forms (PCL), et j'ai vu beaucoup de post mais personne ne travaille pour moi. J'utilise le plugin PhoneCall.Forms.Plugin J'ai fait une méthode pour appeler avec un bouton qui contient le code suivantNotlmplementedException dans le projet Xamarin.Forms (PCL)

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

Il génère une erreur:

System.NotlmplementedException: This functionality is not implemented in the portable version of this assembly. You should reference the NuGet package from your main application project in order to reference the platform-specific implementation.

Deploy stops

+0

Vous devez installer le package dans vos projets d'application (iOS/Android) avec le projet PCL. – SushiHangover

+0

Le même paquet est installé dans les deux projets –

+0

Pouvez-vous ajouter un lien vers le plugin que vous utilisez? – cvanbeek

Répondre

0

Essayez:

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

+0

sur iOS l'Uri a le format: telprompt: // 528331607211 – cvanbeek

+0

Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - [De l'examen] (/ review/low-quality-posts/17656686) – Dmitry

0

Si vous utilisez this plugin (je ne suis pas sûr que ce soit celui spécifique que vous utilisez ou non), vous devez effectuer l'appel téléphonique à l'aide d'un Service de dépendance (Ceci est expliqué dans le readme du plugin).

Faire une méthode dans votre projet PCL pour appeler le service de dépendance:

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

Dans chaque plate-forme projet spécifique, initialiser le plug-in. Pour Android, cela sera fait dans la méthode OnCreate de votre MainActivity, et pour iOS dans AppDelegate dans la méthode FinishedLaunching. Ajoutez la ligne suivante à chaque fois l'initialisation de Xamarin.Forms:

PhoneCallImplementation.Init(); 

Quand vous appelez QCall() dans votre projet PCL, il exécutera le code nécessaire pour la plate-forme spécifique à l'utilisateur est activée.