2010-04-05 2 views
0

가 나는 URL을iPhone에서 Safari로 사용자 에이전트를 사용하여 UIWebView를 요청할 수 있습니까?

http://reader.mac.com/mobile/v1/http%3A%2F%2Ffeeds.feedburner.com%2F9To5Mac-MacAllDay

를 통해 내 응용 프로그램에 요청하려고 만

내가 그것을 어떻게 해결할 수 또한 아이폰에 있음을 사용할 수 반환?

mycode

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: myurl]]; 
    [urlRequest setValue: @"iPhone" forHTTPHeaderField: @"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16"]; 
    [self.myWebView loadRequest:urlRequest]; 

답변

0

HTTP 헤더 필드의 이름은 사용자 에이전트입니다. 이 시도 :

[urlRequest setValue: @"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16" 
     forHTTPHeaderField: @"User-Agent"]; 
+0

MacTouch 덕분이지만 작동하지 않습니다. url은 내 요청이 iPhone이 아니라고 반환합니다. – RAGOpoR

+0

혼자서 사용해 보았습니다. UIWebView 요청 헤더 필드 변경 사항을 무시하는 것 같습니다. WebViewDelegate (shouldStartLoadWithRequest)에서 User-Agent-Field를 설정하거나 User-Agent에 대한 변경을 무시하는 NSMutableURLRequest의 하위 클래스를 사용하면 작동하지 않습니다. 흠 ... 그 밖의 무엇을 할 생각이 없습니다. 어쩌면 당신은 URL의 내용을 임시 파일에로드 한 다음 file : // url (UIWebView # loadHTMLString 및 UIWebView # loadData 참조)을 사용하여 UIWebView가 위치한 위치로 가리킬 수 있습니다. – MacTouch

+0

MacTouch 덕분에 MacTouch 어쨌든 난 그냥 파이어 폭스를 아이폰으로 사용자 에이전트를 전환 할 수 있습니다 그리고 그 URL을 열 수 있습니다 왜 몰라. – RAGOpoR

1

있는 UIWebView 실제로는 URL을로드하기 직전 요청의 사용자 에이전트를 재설정합니다. 따라서 UIWebView가로드되는 사용자 에이전트 문자열을 실제로 변경하려면 method swizzling을 수행해야 할 수도 있습니다. 경고 메시지는 method swizzling could be dangerous입니다.

There's a post이 코드가 있습니다.

관련 문제