.NET MAUI Android: что делать, если вы пытаетесь запустить внешнее приложение, когда оно не установлено?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 .NET MAUI Android: что делать, если вы пытаетесь запустить внешнее приложение, когда оно не установлено?

Сообщение Anonymous »

Я использую панель запуска, чтобы открыть страницу Facebook из своего приложения, вот так:

Код: Выделить всё

async Task OpenFacebook()
{
try
{
// try to open Facebook app, if not, try to open in browser
bool opened = await Launcher.Default.TryOpenAsync($"fb://profile?id={FacebookID}");
if (opened)
return;

await Browser.OpenAsync(new Uri($"https://m.facebook.com/{FacebookID}"), BrowserLaunchMode.External);
}
catch (Exception ex)
{

}
}
Это работает, когда установлено приложение Facebook, но когда я удаляю приложение, я хотел, чтобы оно переключилось на браузер и просто открыло URL-адрес. На самом деле он просто вылетает с такой ошибкой:

Код: Выделить всё

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.myapp/com.myapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.myapp.MainActivity" on path: DexPathList[[zip file...
, Примечание: результат открытия равен true, и функция завершается нормально, затем я получаю указанное выше исключение Java, которое не обрабатывается и приводит к сбою моего приложения. Мне удалось остановить сбой, переместив фильтр намерений в MainActivity.cs следующим образом:

Код: Выделить всё

[IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }, DataScheme = "fb")]
public class MainActivity : MauiAppCompatActivity
Но теперь, когда я нажимаю кнопку, чтобы открыть FB, open по-прежнему верен, и он не переходит в аварийный режим. Это работает так, как задумано, на iOS, но не на Android. Есть идеи, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/791 ... p-when-tha
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»