Как создать UIWebView функции с другого сайта (например, osx Dashboard) - PullRequest
1 голос
/ 08 декабря 2011

Привет! Я хочу подать заявку на персональный дождевой радар, используя информацию с моего веб-сайта местной службы погоды. Я хотел бы, чтобы в моем приложении отображался только радарный дисплей, который вы можете увидеть по этой ссылке

http://www.metservice.com/national/maps-rain-radar/rain-radar/auckland

Мне интересно, можно ли вызвать изображения и создать свой собственный маленький плеер. Я использовал googles source viewer и выяснил, какие части кода содержат изображения, но я просто не уверен, как их использовать.

enter image description here enter image description here

любая помощь будет принята с благодарностью

1 Ответ

1 голос
/ 08 декабря 2011

У вас впереди немало работы, но это был бы хороший опыт обучения.

Во-первых, вам необходимо получить содержимое веб-страницы в виде HTML.У Apple есть учебник, демонстрирующий, как использовать NSURLRequest и NSURLConnection для этого:

Руководство по программированию системы загрузки URL

После того, как вы получили данные из этогоссылку, вы можете пропустить создание NSString, и просто перейти прямо в анализатор XML.Хотя, если вам нужно создать строку для других целей, вы можете использовать:

NSString *stringWithHTMLData =
            [[NSString alloc] initWithData:webPageData
                              encoding:NSStringUTF8Encoding];

Получив данные HTML, вы можете использовать анализатор XML для просмотра HTML и поиска URL-адресовизображения, которые вы хотите отобразить:

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:webPageData];

Ссылка на класс NSXMLParser поможет определить, как пройти HTML:

Ссылка на класс NSXMLParser

После того, как вы проанализировали URL-адреса и получили их, вы действительно можете создать NSImage объекты с URL-адресами, и они будут лениво загружаться с веб-страницы:

NSURL *firstImageURL = ...;
NSImage *image = [[NSImage alloc] initByReferencingURL:firstImageURL];
// Do something with the image, like adding it to a view somewhere
...