加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 在ios中生成网站截屏

发布时间:2020-12-16 07:29:47 所属栏目:百科 来源:网络整理
导读:正如问题所说,在iOS设备上,如果用户在uitextfield中输入URL,我想生成此URL的缩略图捕获.怎么能实现这一目标?不幸的是,我不知道从哪里开始. 当然,我可以这样做的一种方法是将此URL发送到后端从那里获取图像截图.我知道如何使用python或php来做这种事情.但我
正如问题所说,在iOS设备上,如果用户在uitextfield中输入URL,我想生成此URL的缩略图捕获.怎么能实现这一目标?不幸的是,我不知道从哪里开始.

当然,我可以这样做的一种方法是将此URL发送到后端&从那里获取图像截图.我知道如何使用python或php来做这种事情.但我想避免额外往返我的后端服务器.

我想要像 – (uiimage *)screenCapture:(nsurl *)url

解决方法

根据您的问题,我认为您之后会想要操纵生成的屏幕截图.您将以编程方式添加UIWebView以加载所需的URL,然后获取加载的网页的快照,然后删除UIWebView
这是步骤

>您的viewController的UIImageView并将其连接到您的viewController类

@property (weak,nonatomic) IBOutlet UIImageView *image_Thumbnail;

>在名为“webPageUrlString”的变量中使用URL添加以下行

UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.frame];
webView.backgroundColor = [UIColor redColor];
NSURL *websiteUrl = [NSURL URLWithString:**webPageUrlString**];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];
[webView loadRequest: urlRequest];
webView.delegate = self;
[self.view addSubview:webView];

>现在您已请求加载URL但无法呈现快照,除非网页已完全加载,因此您需要等待网页加载通知.为此,您必须订阅webView委托在这样的头文件中

@interface ViewController : UIViewController<UIWebViewDelegate>

>现在,您将实现“webViewDidFinishLoad”并获取所需的快照,然后隐藏并删除webView.

-(void)webViewDidFinishLoad:(UIWebView *)webView{

viewImage = [[UIImageView alloc] initWithFrame:self.view.frame];
viewImage.backgroundColor = [UIColor greenColor];

UIGraphicsBeginImageContext(webView.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
viewImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[webView setAlpha:0];
[webView removeFromSuperview];

[self.view addSubview:viewImage];

}>现在您在名为“viewImage”的属性中拥有了所需的屏幕截图,您可以随心所欲地使用它;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读