【问题标题】:iOS UIWebView Capture user tap on text inputsiOS UIWebView 捕获用户点击文本输入
【发布时间】:2013-10-23 05:21:47
【问题描述】:

我正在为 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】:

我建议你添加这样的东西,看看你的 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 方法,可用于仅获取特定类型的元素(在您的情况下为 &lt;textarea&gt;&lt;input&gt; - 您还需要检查属性/类型以确保它是一个文本字段)

【讨论】:

  • 谢谢。我今天将尝试这个并分享输出。对我来说似乎很有说服力:-)
猜你喜欢
  • 1970-01-01
  • 2022-08-15
  • 2014-02-25
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 2022-07-01
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多