2012-10-31 2 views
0

프로젝트에서 인계받습니다.이 앱의 주요 목표는 웹뷰를 작성하고 모든 페이지로드 URL을 문자열 검사와 비교하여 어떤 백그라운드 기능이 필요한지 결정하는 것입니다. 장소.UIWebView didFinishLoad는 링크 클릭 후 실행되지 않습니다.

문제는 webViewDidFinishLoad가 웹보기 자체가 만들어 질 때 한 번만 실행되는 것처럼 보입니다. 언제든지 내부 링크를 클릭하면 다시 실행되지 않습니다.

onViewLoad에서 대리자를 self로 설정해야하며 모든 것이 비교적 적절하지만 실제로는 각 페이지로드에서 다시 실행되지 않습니다.

본인의 동의.

shouldStartLoadWithRequest가 수행합니다. 그 요청을 시작하고 URL 꽤 시간 전체에로드되지 않기 때문에하지만, 이벤트가 발생, 내가 사용할 때 요청하는 페이지의 현재 URL 대신 대상 URL을 가져옵니다

NSString *curURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"]; 

다른 기능 그래서

//NSString *curURL = self.webView.request.URL.absoluteString; 
//NSString *curURL = webView.request.mainDocumentURL.absoluteString; 

위의 함수로 아무것도 또는 똑같은 일을 반환 해달라고하거나, 여기 손실에서 메신저, 안드로이드에이 일을하는 것만으로는 충분 비교적 간단하지만, 웹보기위한 방법의 제한된 양의 나를 만드는 우울 ..

답변

0

문제는 jQueryUI Mobile 1.0.4를 사용하여 웹 사이트를 만들었습니다. 믹스의 다음 URL과 함께 #을 추가하여이뿐만 아니라 부하 URL을

http://url.com/somepage.php?item=1#/somepage.php?item=2

또한이 작업을 통해 URL을 직접 변경하더라도 페이지 이동이 변경되었다고 생각하여 webView를 속일 수 있습니다. 따라서 webViewDidFinishLoad는 라이브러리가 포함 된 후속 페이지로드 후에 절대 실행되지 않습니다.

슬픈. 도서관도 좋아 보였다.

+0

죄송합니다. 귀하의 해결책이 명확하지 않습니다. 그 해결책은 URL에'# '를 사용하지 않는 ** 것입니다. – njzk2

관련 문제