Так что, либо я неправильно спрашиваю, либо это невозможно, посмотрим, что...
Если мое приложение (Xamarin.Forms) запускается из другого приложения, чтобы получить URL-адрес из моего приложения, как мне вернуть эти данные в вызывающее приложение? Я ошибочно предположил SetResult и Finish, я также ошибочно предположил StartActivityForResult, но должен быть способ сделать это. Я знаю, как получить данные В мое приложение из другого приложения, но не то же самое взамен.
ВОЗМОЖНОЕ ЧАСТИЧНОЕ РЕШЕНИЕ – ОБНОВЛЕНИЕ, НЕУДАЧА
Поэтому мне нужно настроить интерфейс в моем PCL и вызвать метод из обработчика выбранного элемента списка, в приложении Android я могу сделать это:
Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_url"));
setResult(Activity.RESULT_OK, result);
finish();
(источник: https://developer.android.com/training/basics/intents/filters.html)
Правильно ли это выглядит, и как мне реализовать то же самое на iOS?
КОНЕЦ
Я удалил свой предыдущий вопрос, потому что не мог четко объяснить проблему, так что вот.
У меня есть приложение Xamarin Forms, я хочу использовать часть этого приложения в качестве галереи. В настоящее время у меня есть изображения, отображаемые в списке, и у меня есть набор фильтров Intent, который запускает эту страницу, когда вы выбираете приложение в качестве источника изображения (например, загружаете изображение на Facebook).
Проблема в том, что я не Не знаю, как вернуть данные (выбранное изображение) обратно в приложение/веб-страницу, которая сделала запрос. Я понимаю, что в Android вы должны использовать StartActivityForResult и OnActivityResult, чтобы справиться с этим, но я использую Xamarin Forms (Android, iOS, UWP) и не могу найти решение, которое можно было бы использовать кросс-платформенное.
Просто ссылка на документацию, которая охватывает это, была бы здорово, но если у вас есть пример, то еще лучше.
Спасибо
ИЗМЕНИТЬ
Вот код, используемый для запуска приложения. Меня интересует получение данных из Intent.ActionPick после того, как пользователь выбрал изображение из ListView, которое находится в ContentPage в PCL.
[Activity(Label = "", Icon = "@drawable/icon", Theme = "@style/DefaultTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop,
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
[IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = @"*/*")]
[IntentFilter(new[] { Intent.ActionView, Intent.ActionPick, Intent.ActionGetContent }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryOpenable }, DataMimeType = @"*/*")]
public class MainActivity : FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
try
{
base.OnCreate(bundle);
CurrentPlatform.Init();
Xamarin.Forms.Forms.Init(this, bundle);
App _app = new App();
LoadApplication(_app);
if (Intent.Action == Intent.ActionSend)
{
var image = Intent.ClipData.GetItemAt(0);
var imageStream = ContentResolver.OpenInputStream(image.Uri);
var memOfImage = new System.IO.MemoryStream();
imageStream.CopyTo(memOfImage);
_app.UploadManager(memOfImage.ToArray()); //This allows me to upload images to my app
}
else if (Intent.Action == Intent.ActionPick)
{
_app.SelectManager(); //here is where I need help
}
else
{
_app.AuthManager(); //this is the default route
}
}
catch (Exception e)
{
}
}