#macos #macos-carbon #html-rendering
#macos #macos-carbon #html-рендеринг
Вопрос:
У меня есть старая программа, которая показывает встроенный браузер, используя библиотеку рендеринга HTML от Carbon. Я переношу его из codewarrior в Xcode, используя 10.4 SDK. Хотя HTML отображается правильно, включая ссылки, изображения просто не отображаются. Я вижу содержимое alt, а размеры правильно заданы в полях width и height.
Я выполняю инициализацию с помощью:
OSErr err = HRNewReference(m_HRRef, kHRRendererHTML32Type,
GetWindowPort((WindowRef) m_pWindow));
И затем я открываю свой локальный HTML-файл с:
err = HRGoToFSRef(m_HRRef, amp;f, false, false);
Мои изображения также хранятся локально, но просто не отображаются, ранее это нормально работало в моей компиляции codewarrior только для ppc.
Я пробовал работать с веб-страницами в Интернете с помощью HRGoToURL, и я пытался заменить поля src моих изображений ссылками http: // или file: // на изображения в формате jpg, gif и png, всегда с тем же результатом.
Вам известно о какой-либо подобной проблеме? Я знаю, что мог бы и, вероятно, должен был бы перейти на WebKit, но это было бы для меня более сложным.
Sylvain
Ответ №1:
Это выстрел в темноте (я совершенно не знаком с HTMLRenderingLib), но это напоминает мне это. Возможно, и здесь изображения, даже локальные, не загружаются асинхронно; вы пробовали запускать цикл выполнения (какой бы способ ни был наиболее подходящим для вашего приложения: WaitNextEvent, возврат к основному циклу выполнения, запуск цикла вспомогательных событий …) и посмотреть, загружаются ли изображения?
Комментарии:
1. Спасибо Pierre за ваши предложения. Я пытался протестировать ваши предложения (хотя я не уверен, что сделал это правильно), но изображения никогда не появляются. Тем временем я также попытался встроить изображения в HTML, используя URI данных, а также напрямую открыть изображение, а не HTML-файл. URI данных также не появится, и если я открою изображение, двоичное содержимое будет отображаться просто как текст. Итак, я предполагаю, что это не проблема с асинхронной загрузкой изображений.