Мне нужно открыть приложение Slack, установленное на моем мобильном телефоне, с помощью кнопки, созданной в формах Xamarin.
У меня есть интерфейс, созданный в общем проекте, и событие нажатия кнопки в «MainPage».
Позже я создал класс в project.android, который делает внедрение зависимостей, чтобы создать реализацию для открытия конкретного приложения с помощью «Intent»
/////Interface
namespace PracticaXamarin
{
public interface IOpenAppService
{
Task<bool> Launch(string stringUri);
}
}
/////Event click of the button on MainPage
namespace PracticaXamarin
{
public partial class MainPage : ContentPage
{
void Handle_Clicked(object sender, System.EventArgs e)
{
DependencyService.Get<IOpenAppService>().Launch("slack");
//DependencyService.Get<IOpenAppService> ().Launch("com.whatsapp");
}
public MainPage()
{
InitializeComponent();
}
}
}
/////The class created in the project.android
[assembly: Xamarin.Forms.Dependency(typeof(OpenAppService))]
namespace PracticaXamarin.Droid
{
public class OpenAppService : Activity, IOpenAppService
{
public Task<bool> Launch(string stringUri)
{
try
{
Intent intent = Android.App.Application.Context.PackageManager.GetLaunchIntentForPackage(stringUri);
if (intent != null)
{
intent.AddFlags(ActivityFlags.NewTask);
Forms.Context.StartActivity(intent);
}
else
{
intent = new Intent(Intent.ActionView);
intent.AddFlags(ActivityFlags.NewTask);
intent.SetData(Android.Net.Uri.Parse("market://details?id=" + stringUri)); // This launches the PlayStore and search for the app if it's not installed on your device
Forms.Context.StartActivity(intent);
}
return Task.FromResult(true);
}
catch{
return Task.FromResult(false);
}
}
}
}
Что я могу сделать, это передать "Намерение" некоторых приложений, таких как "Намерение" WhatSapp, как показано в строке комментариев, которая открывает приложение WhatSapp
//DependencyService.Get<IOpenAppService>().Launch("com.whatsapp");
Но я не могу найти способ открыть приложение Slack.
Есть ли у меня "Намерение" от Slack?