Кнопка "Поделиться" на 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.
Мне жаль, что я не могу помочь. Если я найду ответ, который работает, я сообщу вам.