В iPhone OS 2.2.1 и 5.0.1, как в симуляторе, так и на устройстве, открытие данных: url отлично работает в UIWebView
, но использование openURL
точно ничего не делает.
И Safari с радостью и должным образом предоставит такой URL-адрес, если вы захотите ввести его в панель навигации, так что это явно проблема с sharedApplication openURL
, а не с Safari.
Если строка base64 достаточно короткая (вероятно, менее 2 КБ), вы можете поместить ее в качестве параметра запроса в URL-адрес http, который просто возвращает перенаправление на URL-адрес данных. Затем вы можете использовать openURL, чтобы открыть http URL. Да, это значит прыгать через какой-то сервер, но это сработает.
В качестве альтернативы, поскольку Safari явно не сделал этого, вы могли бы сообщить iPhone, что ваше приложение является обработчиком для схемы data: и принимает ответственность за визуализацию контента в UIWebView. Это, вероятно, не удастся в будущем, хотя. : -)
Откуда вообще берется URL-адрес данных? Возможно, вы могли бы создать веб-страницу, содержимое которой не более чем <iframe src="<the data url>"/>
, и снова использовать openURL для этого URL.