private void SendInvitationViaSms(UIAlertAction handler) { CheckPermission(new Action(() => { if (MFMessageComposeViewController.CanSendText) { UIStoryboard board = UIStoryboard.FromName("Challenges", null); UIViewController controller = (UIViewController)board.InstantiateViewController("ContactViewController"); this.NavigationController.PushViewController(controller, true); var smsController = new MFMessageComposeViewController { Body = $"{_shareTemplateModel.InviteText} {_shareTemplateModel.ActionLink}" }; var pickerDelegate = new ContactPickerDelegate(); smsController.Finished += (sender, e) => { NSRunLoop.Main.BeginInvokeOnMainThread(() => { e.Controller.DismissViewController(true, null); }); }; (controller as ContactViewController).SelectContacts += ((string[] contactsArr) => { smsController.Recipients = contactsArr; NSRunLoop.Main.BeginInvokeOnMainThread(() => { this.PresentViewController(smsController, true, null); }); }); } })); }
public bool SendSmsToNumbers(List <string> numbers, string message) { try { var contactPickerController = new CNContactPickerViewController(); contactPickerController.PredicateForEnablingContact = NSPredicate.FromValue(true); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(contactPickerController, true, null); // Respond to selection var smsController = new MFMessageComposeViewController { Body = message }; smsController.Finished += (sender, e) => { NSRunLoop.Main.BeginInvokeOnMainThread(() => { e.Controller.DismissViewController(true, null); }); }; var pickerDelegate = new ContactPickerDelegate(); pickerDelegate.SelectContacts += ((string[] contactsArr) => { //contacts = contactsArr; UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(smsController, true, new Action(() => { ; }) ); }); contactPickerController.Delegate = pickerDelegate; UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(contactPickerController, true, null); return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }