Мне нужно, чтобы вытащить строку HTML ниже с моего сайта и отобразить изображение в изображении, которое у меня есть на моей раскадровке. У меня уже есть какой-то код о том, как вытаскивать текст с одного и того же веб-сайта, могу ли я использовать что-то вроде другого кода? Конечно, без полосатой части, это только для получения простого текста. Я бы просто загрузил ссылку на изображение, но изображение изменилось в зависимости от воспроизведения песни. Я хочу попытаться избежать отображения изображения в UIWebView, я бы предпочел отобразить его в UIImageView
Код HTML:
<div id="album_cover">
<img height="160px" width="160px" id="imgcover" src="Link to image changed based on the song playing" alt="Loading..."></div>
Код цели C:
-(void)viewDidLoad {
self.urlForLink = @"http://cloudrad.io/pointzeroradio/player";
NSURL *myURL = [NSURL URLWithString: [self.urlForLink stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:myURL];
[webViewForRecents loadRequest:request];
timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(recentTracksText) userInfo:nil repeats:YES];
}
-(void)recentTracksText {
NSString *textForBlog = [webViewForRecents stringByEvaluatingJavaScriptFromString:@"document.getElementById('current_song').textContent;"];
// Add this step for stripping the HTML from the text you received
self.strippedTextForBlog = [self stringByStrippingHTMLFromString:textForBlog];
continuousLabel.text = self.strippedTextForBlog;
}
Исходя из ответа elio.d. Это отлично работает для меня и загружает от 30 секунд до 3 минут. Если у кого есть способ, который будет загружаться быстро.
-(void)getImageCover {
NSString * js = @"document.getElementById('imgcover').src;";
NSString * imgLink = [webViewForRecents stringByEvaluatingJavaScriptFromString:js];
NSURL * imgURL = [NSURL URLWithString:imgLink];
dispatch_queue_t exampleQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_async(exampleQueue, ^{
NSData * imgData = [NSData dataWithContentsOfURL:imgURL];
UIImage * image = [UIImage imageWithData:imgData];
dispatch_queue_t queue = dispatch_get_main_queue();
dispatch_async(queue, ^{
[imageView setImage:image];
});
});
}
Я полагаю, что ваш div содержит только изображение
Если это так, то вы можете реализовать:
-(void)getImageCover {
NSString * js = @"document.getElementById("imgcover").src;"
NSString * imgLink = [webViewForRecents stringByEvaluatingString:js];
NSURL * imgURL = [NSURL urlWithString:imgLink];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
NSData * imgData = [NSData dataWithContentsOfURL:imgURL];
UIImage * image = [UIImage imageWithData:imageData];
dispatch_async(dispatch_get_main_queue(),{
[imageView setImage:image];
});
});
}