我希望你能帮助我,先为我糟糕的英语道歉。 我想在iOS中的uiwebview上点击指定点(x / y)。我尝试过
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { }
和
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[webview touchesBegan:touches withEvent:event];
}
但我还没有工作。 uiwebview是uiview的子视图,我想。
你能帮帮我吗?来自德国的问候。
答案 0 :(得分:0)
只需调用这样的javascript函数:
[myWebView stringByEvaluatingJavaScriptFromString:"/*JS Code goes here*/"];
而不是/*JS Code goes here*/
键入一个java脚本代码,通过触发所需的x,y位置来执行您想要执行的操作。我假设您可以控制网页内容,如果没有请评论,我会添加更复杂的解决方案。
如果要调用在页面内容中包含的iframe内定义的函数,则需要定义两个函数:
iframe页面中的1- JS函数,作为iframe标记名称的来源显示此函数iFrameFunc()
2- JS在父HTML页面中的函数名称为parentFunc()
3- parentFunc应该通过id或类选择器获取iframe的句柄并调用iframeFunc()
4- Obj-c会将[UIWebview stringByEvaluatingJavaScriptFromString]调用到parentFunc
答案 1 :(得分:0)
我将UIWebView
子类化,并且只是在2级深度的子视图中“浸入”它的手势识别器(你可以递归地进行,但这足以支持iOS6-7)。
然后,您可以使用触摸位置和手势识别器的状态执行任何操作。
for (UIView* view in self.subviews) {
for (UIGestureRecognizer* recognizer in view.gestureRecognizers) {
[recognizer addTarget:self action:@selector(touchEvent:)];
}
for (UIView* sview in view.subviews) {
for (UIGestureRecognizer* recognizer in sview.gestureRecognizers) {
[recognizer addTarget:self action:@selector(touchEvent:)];
}
}
}