Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере создаётся скриншот аналитической панели, который затем сохраняется в папку с ресурсами панели.
Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Отображение аналитической панели») следующий код:
// Создаём скриншот текущего окна приложения
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
UIGraphicsBeginImageContextWithOptions(keyWindow.bounds.size, YES, [UIScreen mainScreen].scale);
} else {
UIGraphicsBeginImageContext(keyWindow.bounds.size);
}
[keyWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
// Получаем изображение
UIImage *image1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *screenshot = UIImagePNGRepresentation(image1);
// Получаем данные изображения
SNData data = NData::dataWithBytes([screenshot bytes], [screenshot length]);
// Создаём копию регламентного отчёта
SPPLDashboardReport copyReport = m_dashboardReport->copy()->qClass<PPLDashboardReport>();
// Устанавливаем пользовательские данные для копии отчёта
copyReport->setData(data);
// Далее сохраняем скриншот экрана на диск
NSData *screenshotData = (NSData *)copyReport->data()->nsObject();
UIImage *image = [UIImage imageWithData:screenshotData];
// Получаем первый ресурс приложения
SPPLReportResource resource = copyReport->resources()->items()->objectAtIndex<PPLReportResource>(0);
// Определяем полный путь к этому ресурсу
NSMutableString *filePath = (NSMutableString *)resource->fullPath()->nsString();
int location = [filePath rangeOfString:@"/" options:NSBackwardsSearch].location;
NSMutableString *path = [(NSMutableString *)[filePath substringToIndex:location] mutableCopy];
// Определяем путь к изображению
[path appendString:@"/"];
[path appendString:@"Image.png"];
// Сохраняем изображение по указанному пути
[UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
NSLog(@"Полный путь до сохранённого скриншота панели: %@", path);
В результате выполнения примера был создан скриншот аналитической панели, который затем был сохранён в папку с ресурсами панели. Путь к данному файлу был выведен в консоли среды разработки:
Полный путь до сохранённого скриншота панели: /Users/sea/Library/Application Support/iPhone Simulator/7.0.3/Applications/660138DE-60E2-4BC5-9263-E4D588C7DD6C/Documents/repositories/C6D1F3B71B945F5A5D708E56526E15AF/DASHBOARD_MOB6/Image.png
См. также: