Как открыть настройки конфиденциальности приложения из форм xamarin - PullRequest
0 голосов
/ 02 мая 2018

Попытка открыть настройки моего приложения, чтобы пользователь мог видеть разрешения, необходимые для моего приложения. не могу найти что-либо с подобным примером. *

if (item.Name == "Privacy preferences")
            {
                switch (Device.RuntimePlatform)
                {
                    case Device.iOS:
                        Device.OpenUri(
                          new Uri(FORGOT WHAT TO PUT IN HERE .. APP/SETTINGS?);
                        break;
                    case Device.Android:
                        Device.OpenUri(
                          new Uri();
                        break;
                }

*

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Довольно просто, вам придется создавать реализации для конкретной платформы.

Интерфейс

public interface ISettingsHelper
{
    void OpenAppSettings();
}

IOS 1010 *
*

public void OpenAppSettings()
{
    var url = new NSUrl($"app-settings:{app_bundle_id}");
    UIApplication.SharedApplication.OpenUrl(url);
}

Android

public void OpenAppSettings()
{
    var intent = new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings);
    intent.AddFlags(ActivityFlags.NewTask);
    var uri = Android.Net.Uri.FromParts("package", package_name, null);
    intent.SetData(uri);
    Application.Context.StartActivity(intent);
}

Из проекта Xamarin.Forms вы можете просто позвонить OpenAppSettings();.

P.S .: Пожалуйста, имейте в виду, что это решение требует настройки, если вы хотите, чтобы оно работало на старых устройствах.

0 голосов
/ 02 мая 2018

Попробуйте Device.OpenUri(new Uri("app-settings:"));

Если это не сработает (я думаю, это было давно), вам, вероятно, придется сделать это в определенных частях вашей платформы и использовать, например, например. служба зависимостей. Для IOS используйте UIApplication.SharedApplication.OpenUrl(new NSUrl("app-settings:"));

Редактировать: @ EvZ ответит с кодом конкретной платформы и абстракцией, если вам также нужен UWP, вы можете позвонить await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-location"));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...