2011-12-27 3 views
0

Я использую этот javascript в UIWebvView, чтобы получить URL-адрес видео YouTube.Javascript работает на iPhone, но не на iPad

getURL = [self.webView stringByEvaluatingJavaScriptFromString:@"function getURL() { 
    var player = document.getElementById('player'); 
    var video = player.getElementsByTagName('video')[0]; 
    return video.getAttribute('src'); 
    } 
    getURL();" 
]; 

Он отлично работает на iPhone, но не работает на ipad и возвращает @ "". Оба устройства загружают веб-сайт m.youtube.com. Может ли кто-нибудь помочь мне?

ответ

0

iPad и iPhone имеют различную информацию заголовка HTTP, в частности строку пользовательского агента. Возможно, YouTube отправляет разные javascript в зависимости от того, какое устройство имеет пользователь.

Вы можете попробовать переопределить HTTP-заголовок «Пользовательский агент» в запросе. Я думаю, что этот ответ на переполнение стека может работать для этого: Change user agent on UIWebView

Если нет, попробуйте использовать набор сторонних классов, таких как AISHTTPRequest, чтобы обмануть информацию пользовательского агента, чтобы получить доступ к URL-адресу YouTube с iPad, в то время как YouTube считает это это iPhone.

+0

Я уже использую ASIHTTPRequest, не могли бы вы дать мне более подробную информацию об изменении пользовательского агента в ASIHTTPRequest? спасибо – JonasG

+0

Ваш ответ правильный, веб-сайты имеют разные заголовки. Не было никакого способа сделать работу javascript на iPad. Мне пришлось использовать совершенно другой метод. – JonasG

+0

Слишком плохо. Извините за отсутствие ответа на ваш последний вопрос. Я уверен, что вы просто создаете новый запрос, а затем устанавливаете агент пользователя. Быстрый URL-адрес google для «агента пользовательских настроек ASIHTTPRequest» отображает эту страницу в верхнем виде: http://allseeing-i.com/ASIHTTPRequest/How-to -use Похоже, вам просто нужно позвонить [request setUserAgent: @ " MyApp 1.0 "] и заменить« MyApp 1.0 »на любое имя агента для iPhone. Тогда вы должны получить ответ iPhone от youtube. Какой метод вы использовали? Если вы публикуете данные здесь, другие люди могут извлечь выгоду из того, как вы решили проблему. – Hivebrain

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