2013-10-23 1 views
1

Mogok과 같은 iOS 용 사용자 정의 브라우저를 개발 중입니다. 사용자가 UIWebView에서 텍스트 입력을 탭할 때 기본 키보드를 변경해야합니다.iOS UIWebView 텍스트 입력에 대한 사용자 탭 캡처

행운이없는 thisthis을 사용해 보았습니다. 버튼에 대한 해결 방법이 있지만이 방법은 textinput 및 textarea에서는 작동하지 않습니다.

NSString *jsCode = @"function setClickEvent() {for (i = 0; i < document.all.length; i++) { var obj = document.all[i]; obj.addEventListener('click',function(){window.location = "fake://myApp/something_happened:param1:param2:param3";})}} setClickEvent();"; 
[self._webView stringByEvaluatingJavaScriptFromString:jsCode]; 

이를 달성하기 위해 다른 방법이 있나요 :

내 JS 코드는이에 대한 아래로 무엇입니까? 내 유일한 요구 사항은 사용자가 textinput 또는 textarea를 누를 때 알림을받습니다.

미리 감사드립니다.

감사 란잔는

+0

내 질문은 다른 질문에서 볼 수 있습니다. http://stackoverflow.com/questions/19961369/how-the-default-keyboard-comes-up-when-user-taps-in-uiwebview/20037193 # 20037193 – dcorbatta

답변

1

나는 당신의 자바 스크립트 코드가 예상대로 실행되면 당신이보고,이 같은 것을 추가 좋을 것 :

NSString *jsCode = @" 
"try{" 
" for (i = 0; i < document.all.length; i++) {" 
"  var obj = document.all[i];" 
"  obj.addEventListener('click',function(){" 
"   window.location = \"fake://myApp/something_happened:param1:param2:param3\";" 
"  });" 
" }" 
"}" 
"catch (exc){" 
" return \"caught exception: \" + exc.toString();" 
"}"; 
NSString result = [self._webView stringByEvaluatingJavaScriptFromString:jsCode]; 
NSLog(@"%@", result); 
당신은 당신이 당신의 return (예에서 무엇을해야 로깅 추가 할 수 있습니다

: 문자열을 가지고 계속 추가합니다.) 그런데

은, 귀하의 경우 <textarea><input>에서 특정 유형의 요소 (가져 오기 위해 사용할 수있는 자바 스크립트에 대한 getElementByTagName 방법있다 - 당신은 또한/타입 그것이 확실하게하는 속성을 확인해야합니다 텍스트 필드)

+0

감사합니다. 나는 이것을 오늘 시험해보고 결과물을 공유 할 것이다. 나에게 납득이가는 것 같다 :-) – TechBee