我需要在iPhone中捕获我的应用程序的屏幕。每当要捕获的弹出页面时,屏幕快照中只有弹出视图可见,捕获的屏幕快照中的背景屏幕变为黑色。我需要屏幕截图以显示弹出窗口以及基础页面。
我正在Xamarin.Forms
中编码。我正在使用DependencyService来捕获iOS和Android中的屏幕截图。
在Android中,我能够捕获弹出窗口以及背景页面。 但是在iOS中,会捕获弹出窗口以及黑色背景。
var capture = UIScreen.MainScreen.Capture();
这是iOS DependencyService中用于捕获屏幕截图的代码。
答案 0 :(得分:1)
我在一个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) => { });
}
}