Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS UIWebView捕获用户点击文本输入_Ios_Objective C - Fatal编程技术网

iOS UIWebView捕获用户点击文本输入

iOS UIWebView捕获用户点击文本输入,ios,objective-c,Ios,Objective C,我正在为iOS开发一个自定义浏览器,比如Mogok。当用户点击UIWebView上的任何文本输入时,我需要更改默认键盘 我试过了,但没有成功。我有一个按钮的变通方法,但这不适用于textinput和textarea 我的js代码如下所示: NSString *jsCode = @"function setClickEvent() {for ( i = 0; i < document.all.length; i++) { var obj = document.all[i]; obj.addE

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

我试过了,但没有成功。我有一个按钮的变通方法,但这不适用于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];
NSString*jsCode=@“函数setClickEvent(){for(i=0;i

有没有其他方法可以做到这一点?我唯一的要求是当用户点击textinput或textarea时获得通知

我建议您添加如下内容,以查看您的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);
NSString*jsCode=@”
“试试{”
“对于(i=0;i
您可以在
返回中添加所需的任何日志记录(例如:有一个字符串并一直附加到它)


顺便说一句,javascript有一个方法,可以用来只获取特定类型的元素(在您的例子中,
-您还需要检查属性/类型以确保它是一个文本字段)

我建议您添加类似的内容,以查看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);
NSString*jsCode=@”
“试试{”
“对于(i=0;i
您可以在
返回中添加所需的任何日志记录(例如:有一个字符串并一直附加到它)


顺便说一句,javascript有一个方法,可以用来只获取特定类型的元素(在您的例子中,
-您还需要检查属性/类型以确保它是文本字段)

谢谢。今天我将尝试这个方法并分享结果。对我来说似乎很有说服力:-)谢谢。今天我将尝试这个方法并分享结果。你可以在另一个问题中看到我的答案:你可以在另一个问题中看到我的答案: