iOS UIWebView Capture用户在文本输入上点击

问题描述 投票:1回答:1

我正在为iOS开发自定义浏览器,例如Mogok。当用户点击UIWebView上的任何文本输入时,我需要更改默认键盘。

我没有运气就尝试了thisthis。我有一种解决按钮的方法,但不适用于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时收到通知。

ios objective-c
1个回答
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中添加所需的任何日志记录(例如:有一个字符串并保持附加)。

顺便说一句,有一个getElementByTagName方法用于javascript,可用于仅提取某些类型的元素(在您的情况下为getElementByTagName<textarea>-您还需要检查属性/类型以确保它是一个文本字段)

© www.soinside.com 2019 - 2024. All rights reserved.