2013-10-23 35 views
1

我正在开发一个类似Mogok的iOS自定义浏览器。当用户点击UIWebView上的任何文本输入时,我需要更改默认键盘。我试过thisthis,没有运气。我有一个按钮的解决方法,但这不适用于textinput和textarea。iOS UIWebView捕获用户点击文本输入

我的js代码是在此:

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]; 

是否有任何其他的方式来实现这一目标?我的唯一需求是在用户点击textinput或textarea时获得通知。

非常感谢提前!

问候 兰詹

+0

您可以在其他问题中看到我的答案:http://stackoverflow.com/questions/19961369/how-the-default-keyboard-comes-up-when-user-taps-in-uiwebview/20037193 #20037193 – dcorbatta

回答

1

我建议你添加这样的事情,就看你的JavaScript代码运行正常:

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(如需要的任何记录:有一个字符串并继续附加到它)。

顺便说一句,有一个为JavaScript的一个getElementByTagName方法,可用于获取某种类型的唯一元素(在你的情况<textarea><input> - 你还需要检查属性/类型,以确保它是一个textfield)

+0

谢谢。我今天会尝试这个,并分享输出。似乎令我信服:-) – TechBee