Как добавить прозрачность отслеживания приложений (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
Я не получаю никакой ошибки, она просто не отображается в моем приложении (я добавляю редактирование в свой пост, чтобы показать, что мне нужно получить)
Возможно, вы захотите проверить документы Apple. Для некоторых из этих вещей, я думаю, это проявляется только в сценариях без отладки. Но не уверен для этого.
В соответствии с этой проблемой, которая касается Диалоговое окно прозрачности отслеживания приложений 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;
}
});
}
Я проверил это в своем проекте, и появится предупреждение о запросе разрешения.
Дайте определение «не работает». Что вы ожидаете от него, а что нет? Вы получаете сообщения об ошибках? Есть вообще информация?