美文网首页程序员
关于UIWebView长按识别二维码的问题

关于UIWebView长按识别二维码的问题

作者: iOS骆驼 | 来源:发表于2017-03-21 17:51 被阅读0次

前言

之前在应用中涉及到UIWebView长按识别二维码的问题,安卓那边在网上可以搜索到相关的代码实现,而我在网上也搜索了半天也没有找到相关的代码实现,就花了好长时间研究这一块。

废话不多说,直接上代码。

主要是在UIWebView  webViewDidFinishLoad方法中加入下面下面几行代码:
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
   //给UIWebView加一个长按手势

   UILongPressGestureRecognizer *longPressed = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];

   longPressed.delegate=self;

   [self.webView addGestureRecognizer:longPressed];
}

接着在手势响应方法里面实现相应的获取图片地址的方法,并弹出SheetView。
这里需要注意的是一定要判断手势的state属性,想知道后果的同学可以注掉判断代码自己尝试一下。
另外就是如果手指长按位置是非图片的话,urlToSave是一个nil值。

//然后实现长按手势的方法
- (void)longPressed:(UILongPressGestureRecognizer*)recognizer
{
    if (recognizer.state != UIGestureRecognizerStateBegan) {
        return;
    }
    
    CGPoint touchPoint = [recognizer locationInView:self.webView];
    
    /*
    ##核心代码  主要执行一段js语句
    */   
    NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", touchPoint.x, touchPoint.y];
    NSString *urlToSave = [self.webView stringByEvaluatingJavaScriptFromString:imgURL];
    
    if (urlToSave.length == 0) {
        return;
    }
    
    MyLog(@"%@",urlToSave);
     /*
    执行想要执行的操作代码
    1.下载图片
    2.保存相册
    3.二维码识别(返回的是图片的地址,NSString类型,做过二维码的同学识别的应该不陌生)
    [self showImageOptionsWithUrl:urlToSave];
    */
}

CSDN技术地址

之前一直都是在CSDN上写的东西,去年刚开始写了一篇简书,之前写的有点乱。今天用的MacDown重新写了一遍。

非常希望和大家交流技术,也希望交到更多的朋友。今后就用简书写了。

相关文章

网友评论

    本文标题:关于UIWebView长按识别二维码的问题

    本文链接:https://www.haomeiwen.com/subject/rqpgnttx.html