2012-05-30 2 views
1

웹 사이트에서 콘텐츠를 가져 오는 iOS 앱을 만들고 있습니다. 이 웹 사이트에서는 웹 페이지에서 링크를 클릭 할 때 호출되는 JS 스크립트를 통해 컨텐츠에 투표 할 수 있습니다.iOS의 웹 페이지에서 JS 기능 실행

웹 페이지를 사용자에게 표시하고 메신저를 클릭하지 않고도 앱에서 투표를 구현하고 싶습니다.

나는 거기,

[myWebView stringByEvaluatingJavaScriptFromString:@"myJSFunction()"] 

그러나있는 UIWebView를로드하는 것은 단지 (빨라야한다) 투표의 특별 때문에, 조금 긴 사용하여있는 UIWebView의 자바 스크립트 기능을 수행 할 수 있습니다 알고 사용자 상호 작용을 요구하지 않고 JS 기능을 호출하는 더 쉬운 방법 (물론 앱에서 투표 버튼을 테이핑하는 것 제외)

고마워!

+0

웹 사이트에서 검색 한 콘텐츠를 어떻게 표시합니까? 당신이 그걸 로딩하는 것을 피하려고하기 때문에 나는 uiwebview가 아니라고 가정하고 있습니다. 웹 사이트 측면 (특히 myJSFunction()의 동작)에 대한 책임은 있습니까? –

+0

사실, 내 자신의 HTML 파서를 사용하여 페이지의 내용을 구문 분석하고 UITableView에서 보여 ... 아니, 실제로 나는 서버 측의 책임이 아니므로 소유자가 정말 괜찮아 보이지 않는 것 같습니다. 투표하는 간단한 API. 나는이 JS 함수가 있고 투표한다는 것을 알고 있습니다. 난 그냥 Xajax를 사용하여 PHP 함수를 호출한다는 것을 알고 있습니다. – Abel

+0

stringByEvaluatingJavaScriptFromString은 iOS (물론 Safari는 제외)에서 JS를 실행할 수있는 유일한 방법입니다. – Gruntcakes

답변

1

iOS에서이 기능은 JS 기능을 실행하는 유일한 방법입니다.

네이티브 UI를 사용하여 일부 투표 정보를 입력하는 것에 대해 이야기하고 있습니까? 정보 처리는 JS가 수행합니까?

JS가 수행하는 작업, 즉 DOM과 상호 작용하는 경우에 따라 다르지만, stringByEvaluatingJavaScriptFromString을 호출하기 전에 UIWebView가 웹 페이지의 다운로드 /로드/렌더링을 완료 할 때까지 기다릴 필요는 없습니다. JS는 immediatly를 사용할 준비가되어 있습니다.이 경우 webViewDidFinishLoad가 호출되기를 기다리기 전에 stringByEvaluatingJavaScriptFromString을 호출 할 수 있습니다.