Getting selected elements programmatically from uiwebview?

别等时光非礼了梦想. 提交于 2019-12-05 09:56:41

You don't specify what is that is not working for you... anyway, a couple of suggestions:

  1. try with the following js in your tap handler:

    NSString *js = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).innerHTML", touchPoint.x, touchPoint.y];
    
  2. when creating your tap gesture handler, specify a delegate for it (it can be your controller):

    tap1.delegate = self;
    
  3. in your controller (or web view delegate), define the following delegate method:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:    (UIGestureRecognizer*)otherGestureRecognizer {
        return YES;
    }
    
  4. if you are using iOS 5, have a look at this article about a glitch in elementFromPoint.

By doing like this, I am able to get the exact HTML value for the selected object.

Colin Godsey

If they're all independent DOM elements, you should be able to listen for touchstart events in JavaScript, and when you get the event object, it should have event.target, this will be the element the user clicked on. You can then capture the data you need in JS, and then send it back to Objective-c. The best way to get data from JS to native code is to use a UIWebView delegate, this should hopefully do the trick for you!

When user make a selection on the UIWebView, make an AJAX http request, that you can intercept in your UIWebViewDelegate implementing the

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

method.

Then you can accept the request loading, block it, analyze it, do whatever you like with it.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!