Как добавить прозрачность отслеживания приложений на maui

Как добавить прозрачность отслеживания приложений (ATT) в приложение maui на IOS?

Я добавил этот код в MainPage.xaml

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

    // Prompt the user for tracking authorization
    ATTrackingManager.RequestTrackingAuthorization(async (status) =>
    {
        string message = "";
        // Handle the user's authorization status here
        switch (status)
        {
            case ATTrackingManagerAuthorizationStatus.Authorized:
                message = "Authorized";
                await Application.Current.MainPage.DisplayAlert("Authorization Status", message, "OK");
                break; 

            case ATTrackingManagerAuthorizationStatus.Denied:
                message = "Denied";
                await Application.Current.MainPage.DisplayAlert("Authorization Status", message, "OK");
                break; 

            case ATTrackingManagerAuthorizationStatus.Restricted:
                message = "Restricted";
                await Application.Current.MainPage.DisplayAlert("Authorization Status", message, "OK");
                break; 

            case ATTrackingManagerAuthorizationStatus.NotDetermined:
                message = "NotDetermined";
                await Application.Current.MainPage.DisplayAlert("Authorization Status", message, "OK");
                break; 
        }
    });
}

И этот код для info.plist

<key>NSUserTrackingUsageDescription</key>
<string>This app uses data to deliver personalized advertising.</string>

И это все еще не работает. Я не получаю никакой ошибки. но сообщение не отображается.

Обновлено: я ожидал получить такое сообщение

Https://support.apple.com/ru-in/HT212025

Дайте определение «не работает». Что вы ожидаете от него, а что нет? Вы получаете сообщения об ошибках? Есть вообще информация?

Gerald Versluis 15.02.2023 15:22

Я не получаю никакой ошибки, она просто не отображается в моем приложении (я добавляю редактирование в свой пост, чтобы показать, что мне нужно получить)

Matan Fadida 15.02.2023 15:32

Возможно, вы захотите проверить документы Apple. Для некоторых из этих вещей, я думаю, это проявляется только в сценариях без отладки. Но не уверен для этого.

Gerald Versluis 15.02.2023 16:42
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
Аутсорсинг разработки PHP для индивидуальных веб-решений
Аутсорсинг разработки PHP для индивидуальных веб-решений
Услуги PHP-разработки могут быть экономически эффективным решением для компаний, которые ищут высококачественные услуги веб-разработки по доступным...
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Узнайте, как использовать теги &lt;ul&gt; и &lt;li&gt; для создания неупорядоченных списков в HTML
Узнайте, как использовать теги <ul> и <li> для создания неупорядоченных списков в HTML
HTML предоставляет множество тегов для структурирования и организации содержимого веб-страницы. Одним из наиболее часто используемых тегов для...
0
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В соответствии с этой проблемой, которая касается Диалоговое окно прозрачности отслеживания приложений Xamarin не появляется с iOS 15, вы можете попробовать поместить код в /Platforms/iOS/AppDelegates.cs. Такой как:

public override void OnActivated(UIApplication application)
      {
            base.OnActivated(application);
        ATTrackingManager.RequestTrackingAuthorization(async (status) =>
        {
            string message = "";
            // Handle the user's authorization status here
            switch (status)
            {
                case ATTrackingManagerAuthorizationStatus.Authorized:
                    message = "Authorized";
                    break;

                case ATTrackingManagerAuthorizationStatus.Denied:
                    message = "Denied";
                    break;

                case ATTrackingManagerAuthorizationStatus.Restricted:
                    message = "Restricted";
                    break;

                case ATTrackingManagerAuthorizationStatus.NotDetermined:
                    message = "NotDetermined";
                    break;
            }
        });
    }

Я проверил это в своем проекте, и появится предупреждение о запросе разрешения.

Другие вопросы по теме