WebKit WebView를 사용하는 응용 프로그램이 있는데이 WebView에로드 된 URL을 사용자 지정 URL 프로토콜과 함께 다른 HTTP URL에 매핑하고 싶습니다.사용자 지정 URL 프로토콜을 HTTP로 매핑 (NSURLProtocol? 사용)
사용자 정의 : 예를 들어, 나는로드하고 말할 // 경로// 자원
내가 내부적으로 실제로 부하에 싶습니다 즉
http://something-else.com/path/to/resource
, 사용자 정의 프로토콜 제공 거의 속기로서. 그러나 WebKit에서 실제로이 URL을 믿고 싶기 때문에 -webView : resource : willSendRequest : redirectResponse : fromDataSource :를 사용할 수 없습니다. 단순히 다른 URL로 리디렉션하지 말아야합니다.
지금까지 사용자 지정 NSURLProtocol 하위 클래스를 사용하려고 시도했습니다. 그러나, 적어도 내 이해하기 때문에, NSURLProtocol 하위 클래스 인 'startLoading 메서드'에서 실제로드를 직접 수행해야하기 때문에 이것은 처음 생각한 것보다 까다로울 수 있습니다. 기존의 HTTP 프로토콜 로더에 작업을 전달하는 방법을 원하지만이 작업을 수행하는 쉬운 방법을 찾을 수 없습니다.
이 문제에 대한 권장 사항이 있습니까? 아니면 다른 방법으로 해결할 수 있습니까?
감사합니다.
이것이 웹 뷰를 맞춤 프로토콜 URL에서 생각하게 만드는 효과가 있습니까? if-block에서 새로운 URL을 단순히로드하면 이전과 같은 위치에있게 될 것입니다. 효과적으로 리디렉션을 만듭니다. 하지만 아마도 내가 거기에서 새로운 URL을로드하기로되어있는 패션을 오해하고 있습니다. –
"웹뷰를 사용자 정의 프로토콜 URL에서 생각하게하는 효과가 있습니까?" 아니요, 확실히 아닙니다. 목표가 href.location을 한 가지로 설정하고 다른 href.location을로드하는 것이라면이 솔루션은 거기에 도달하지 못합니다. 죄송합니다. 이 경우 사용자 정의 구성표가 감지되면 심지어 죽게됩니다. 따라서 location.href는 절대로 변경되지 않습니다. "효과적으로 리디렉션을 만듭니다" 리디렉션과 다릅니다. 리디렉션에서는 첫 번째 URL이로드되고 처리되며 다음 URL이로드됩니다. 정책 대리자를 사용하고 [listener ignore]를 호출하면 첫 번째 URL로드가 완전히 중단됩니다. – isaiah