Кнопка "Поделиться" на Xamarin.forms.ios

Я новичок в Xamarin и пытаюсь создать простое приложение с Xamarin.forms. Теперь мне нужно добавить кнопку "Поделиться" (квадрат + стрелка, как на Safari на iPhone) в мое приложение. Поскольку я знаю, что Android и IOS отличаются, поэтому я использую DependencyService. Он хорошо работает на Android с помощью Intent, но не может сделать это на IOS. не могли бы вы мне помочь, пожалуйста. спасибо всем,это мой код

PCL

    var x = DependencyService.Get<IShareable>(); 
    x.ShareText("any text to share"); 

Android

public void ShareText(string textToShear) 
{
  var myIntent = new Intent(Android.Content.Intent.ActionSend);      
  myIntent.SetType("text/plain"); 
  myIntent.PutExtra("sms_body", textToShear); 
  Forms.Context.StartActivity(Intent.CreateChooser(myIntent,"Choose an App"));
}

IOS

public void ShareText(string textToShear) 
{
 //what i should do 
} 

2 ответа

Решение

Вы хотите использовать UIActivityViewController.

Это будет выглядеть примерно так:

public void ShareText(string textToShare) 
{
    var activityController = new UIActivityViewController(new NSObject[] { UIActivity.FromObject(textToShare) }, null);
    UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(activityController, true, null);
}

Я в точно такой же позиции.

Что я узнал до сих пор:

  • Приложения для iOS обычно используют что-то под названием Sharekit, но я не нашел никого, кто бы использовал это с Xamarin.Forms
  • Начиная с iOS 6, есть более простой способ поделиться с целью c, но я не уверен, как мы могли бы преобразовать это в C# / Xamarin.
  • Существует социальный плагин для Xamarin под названием Xamarin.Social, который позволяет пользователям входить в систему и публиковать материалы из вашего приложения. Конечно, это не то, что мы хотим сделать... в идеале нам нужна та же функциональность, что и в Android.

Мне жаль, что я не могу помочь. Если я найду ответ, который работает, я сообщу вам.

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