Ошибка глубокой ссылки OnCreate для Android в NET9 MAUIAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Ошибка глубокой ссылки OnCreate для Android в NET9 MAUI

Сообщение Гость »

В моем приложении NET9 MAUI я пытаюсь добавить функцию глубокой ссылки. В App.xaml.cs я добавил этот код

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

protected override Window CreateWindow(IActivationState activationState)
{
var window = base.CreateWindow(activationState);

window.Created += async (s, e) =>
{
// Small delay to ensure Shell is ready
await Task.Delay(100);

// Process deep link from initial launch
if (!string.IsNullOrEmpty(InitialDeepLink))
{
await HandleAppLink(InitialDeepLink);
InitialDeepLink = null;
}
};

return window;
}

protected override async void OnAppLinkRequestReceived(Uri uri)
{
base.OnAppLinkRequestReceived(uri);

if (uri != null)
{
await Dispatcher.DispatchAsync(async () =>
{
await HandleAppLink(uri.ToString());
});
}
}

protected async Task HandleAppLink(string data)
{
if (data.Contains("/addword") &&
!string.IsNullOrEmpty(new Uri(data).Query))
{
// code
}
return;
}
В Android MainActivity.cs я добавил этот код

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

[Activity(Theme = "@style/Maui.SplashTheme",
MainLauncher = true, LaunchMode = LaunchMode.SingleTop,
ConfigurationChanges = ConfigChanges.ScreenSize |
ConfigChanges.Orientation |
ConfigChanges.UiMode |
ConfigChanges.ScreenLayout |
ConfigChanges.SmallestScreenSize |
ConfigChanges.Density)]
[IntentFilter(new[] { Platform.Intent.ActionAppAction },
Categories = new[] {
global::Android.Content.Intent.CategoryDefault
})]
[IntentFilter(new[] { Intent.ActionView },
Categories = new[]
{
Intent.ActionView,
Intent.CategoryDefault,
Intent.CategoryBrowsable,
},
DataScheme = "liu", DataHost = "", DataPathPrefix = "/")]
public class MainActivity : MauiAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

string[] notiPermission = { Manifest.Permission.PostNotifications };

// this line will make the status bar and navigation bar transparent
Window.SetFlags(WindowManagerFlags.Secure,
WindowManagerFlags.LayoutNoLimits);
// this line to keep the status bar color
Window.SetStatusBarColor(Android.Graphics.Color.Blue);

SetAdvertisement();

// Handle deep link on initial launch - store it for later processing
if (savedInstanceState == null && Intent?.Action == Intent.ActionView)
{
var data = Intent?.Data?.ToString();
if (!string.IsNullOrEmpty(data))
{
App.InitialDeepLink = data;
}
}
}

protected override void OnResume()
{
base.OnResume();

Platform.OnResume(this);
}

public async void SetDeepLinking()
{
// deep linking
var uri = Intent?.Data;
if (uri != null)
{
if (uri.ToString().Contains("/addword") &&
!string.IsNullOrEmpty(uri.Query))
{
// code
}
}
}

protected override void OnNewIntent(Intent intent)
{
base.OnNewIntent(intent);

Intent = intent;

// OnNewIntent is only called when app is already running (SingleTop)
// Window exists, so we can process immediately
HandleIntent(intent);
}

private void HandleIntent(Intent intent)
{
var action = intent?.Action;
var data = intent?.Data?.ToString();

if (action == Intent.ActionView && !string.IsNullOrEmpty(data))
{
if (Uri.TryCreate(data, UriKind.RelativeOrAbsolute, out var uri))
{
// App is already running, window exists
App.Current?.SendOnAppLinkRequestReceived(uri);
}
}
}
}
Целевая версия Android — 15.0 (уровень API 35). Приложение запускается и работает нормально. Когда я тестирую глубокую ссылку, я получаю в MainActivity.cs ошибку в OnCreate в этой строке base.OnCreate(savedInstanceState);. Ошибка:

System.InvalidOperationException: «Это окно уже связано с активным действием (LanguageInUse.MainActivity). Переопределите CreateWindow в LanguageInUse.App, чтобы добавить поддержку нескольких действий https://aka.ms/maui-docs-create-window, или установите для параметра LaunchMode значение SingleTop в LanguageInUse.MainActivity.'

Изображение

Я прочитал документацию Microsoft, но информации об этом нет.
Я попробовал другое решение, но безуспешно. Как я могу это исправить?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -net9-maui
Ответить

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

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

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

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

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