Как я могу сделать снимок экрана с всплывающим окном в xamarin в iPhone? - PullRequest
0 голосов
/ 04 июля 2019

Мне нужно сделать снимок экрана моего приложения в iPhone.Всякий раз, когда есть захваченная всплывающая страница, на скриншоте виден только всплывающий вид, на снятом скриншоте фоновый экран становится черным.Мне нужен скриншот, чтобы показать всплывающее окно вместе с базовой страницей.

Я кодирую в Xamarin.Forms.Я использую DependencyService для захвата скриншота в iOS и Android.

В Android я могу захватывать всплывающие окна вместе с фоновой страницей.Но в iOS всплывающее окно с черным фоном захватывается.

var capture = UIScreen.MainScreen.Capture();

Это код в iOS DependencyService для захвата скриншота.

1 Ответ

1 голос
/ 04 июля 2019

У меня был метод скриншота, который я использовал в одном из своих POC, но я не уверен, будет ли он работать с всплывающими окнами или нет, вы можете попробовать его

 private void TakeScreenshot()
    {
        var layer = UIApplication.SharedApplication?.KeyWindow?.Layer;
        var scale = UIScreen.MainScreen.Scale;
        UIGraphics.BeginImageContextWithOptions(layer.Frame.Size, false, scale);
        var context = UIGraphics.GetCurrentContext();
        if (context == null)
        {
            return; // Show popup screenshot was not taken 
        }
        layer.RenderInContext(context);
        var screenshotImage = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();
        if (screenshotImage != null)
        {
            screenshotImage.SaveToPhotosAlbum((UIImage, NSError) => { });
        }

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