我正在为iOS开发一个类似Mogok的自定义浏览器。当用户点击UIWebView上的任何文本输入时,我需要更改默认键盘。
我试了this和this没有运气。我有按钮的解决方法,但这对textinput和textarea不起作用。
我的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 :(得分: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>
- 您还需要检查属性/类型以确保它是文本字段)