2009-03-13 3 views
9

У меня есть данные: URL (см.: http://en.wikipedia.org/wiki/Data_URI_scheme) (как NSString), и я хочу открыть его в Safari. Как бы вы сделать это (я пробовал OpenUrl :.)
Пример:iPhone Open DATA: Url In Safari

data:text/html;base64,(Some Base64 Encoded Data Here) 
+0

это может помочь показать URL. Может быть, это плохо сформировалось. –

+0

openURL должен работать (это то, для чего он предназначен!), Что произошло, когда вы пытались использовать openURL? – hhafez

+0

Я на самом деле видел эту работу ... не могу заставить ее работать сам, но пытаюсь ... – Jonny

ответ

6

В iPhone OS 2.2.1 и 5.0.1, как на тренажере и на устройстве, открывая данные: URL отлично работает в UIWebView, но с использованием openURL не делает ровно ничего.

И Safari с радостью и должным образом отобразит такой URL-адрес, если вы захотите ввести его в панель навигации, поэтому это явно проблема с sharedApplication openURL, а не с Safari.

Если строка base64 достаточно коротка (возможно, менее 2K), вы можете привязать ее как параметр запроса к URL-адресу http, который просто возвращает перенаправление на URL-адрес данных. Затем вы можете использовать openURL, чтобы открыть http-адрес. Да, это означает перепрыгивание через какой-то сервер, но это сработает.

В качестве альтернативы, так как Safari, очевидно, не сделала этого, вы могли сказать iPhone, что вашего приложения является обработчиком данных : схему и взять на себя ответственность за оказание содержания в UIWebView. Однако это, скорее всего, не удастся в будущем. :-)

Где находится URL-адрес данных в первую очередь? Возможно, вы можете создать веб-страницу с содержанием не более <iframe src="<the data url>"/> и снова использовать OpenURL по этому URL-адресу.

-1

Это должно сделать это:

NSURL *yourURL = [[NSURL alloc] initWithString:yourStr];  
[[UIApplication sharedApplication] openURL:yourURL]; 
[yourURL release]; 

предполагая «yourStr» является NString с URL, где находятся ваши данные ,

+0

Не работает - см. Комментарии к сообщению hhafez. –

+0

Способ обойти это может быть просто отобразить его в объекте UIWebView. Это в основном Safari, но полностью в вашем собственном приложении. – GoatRider

+0

Мне нужен пользователь, чтобы иметь возможность закладки страницы - так что Safari - единственный вариант. –

 Смежные вопросы

  • Нет связанных вопросов^_^