轻松获取网页的更多基本信息(LinkPresentation.framework) — Embedding and Sharing Visually Rich Links

linkf-000@2x.png

网页中其实包含了很多信息,能否轻易获取这些信息内容呢?
最近翻看开发文档,看到一个iOS13开始新推出的关于web的功能,LinkPresentation.framework,然后加入工程,调用了下,发现还挺有用的。


linkf-00@2x.png

Apple的官方说明视频,可以查看这里
https://developer.apple.com/videos/play/wwdc2019/262/

来简单使用下LinkPresentation

1、把库引入工程
linkf-01@2x.png
2、然后可以查看下库内文件内容,其实内容比较少,可以很方便的理解。

主要就是4块内容
LPError.h
LPLinkMetadata.h
LPLinkView.h
LPMetadataProvider.h
其中能够被我们以后能够常用到的就是LPMetadataProvider对象。


linkf-02@2x.png
3、创建了一个LPLinkView,然后看下效果。链接我用的是知乎的首页,看看能够看到什么效果。
- (void)createLPView:(LPLinkMetadata *)metadata{
    
    _lp_view = [[LPLinkView alloc]initWithMetadata:metadata];
    [self.view addSubview:_lp_view];
    
    [_lp_view mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(@100);
        make.width.equalTo(@200);
        make.height.equalTo(@400);
        make.centerX.equalTo(self.view);
    }];
    
}

- (void)showLP{
    
    LPMetadataProvider *prov = [LPMetadataProvider new];
    [prov startFetchingMetadataForURL:[NSURL URLWithString:@"https://www.zhihu.com"] completionHandler:^(LPLinkMetadata * _Nullable metadata, NSError * _Nullable error) {
        dispatch_async(dispatch_get_main_queue(), ^{
           [self createLPView:metadata];
        });
    }];
    
}

4、模拟器跑出来的效果,按住LPLinkView,有一个浮层的效果,下面是一些更多选项。
Simulator Screen Shot - iPhone 11 Pro - 2020-04-21 at 17.37.34.png

Simulator Screen Shot - iPhone 11 Pro - 2020-04-21 at 17.37.50.png
5、然后打印下metadata信息,可以获得当前网页的各种信息。
linkf-05@2x.png

这些信息可以保存,可以处理,可以分析,可以各种喜欢的处理。

几点注意

  • 1、LinkPresentation的实现原理
    根据后台打印的log和苹果官方视频的介绍,其实是创建了一个WKWebView的实例,去请求加载网页内容,获取相应的信息。
    其实是对WKWebView拓展应用,相对来说资源耗费还是挺大的。

  • 2、LPMetadataProvider对象必须是在主线程中调用
    它的返回completionHandler是在异步线程中,如果是一些UI操作,需要切换到主线程
    LPMetadataProvider的每一个实例只能请求一次,若再次请求,需要创建新的实例。一个实例多次请求会发生错误。

  • 3、如果是Mac OS 应用
    必须具有com.apple.security.network.client权限,以便能够对远程url使用LPMetadataProvider。

  • 4、LPLinkMetadata
    LPLinkMetadata数据可以自己创建,自己赋值使用。LPLinkMetadata支持NSSecureCoding,可以直接保存。

  • 5、LPLinkView
    LPLinkView创建后的frame可以sizeToFit,建议是自己设定。

以上便是LinkPresentation.framework的一个简单的调用,若是应用中需要跳转网页,获取网页的一些信息,在iOS13之后便可以用这个类库,还是很方便的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,342评论 0 3
  • 以前我们说坚持,现在说死磕。好吧,我更喜欢后面的说法,接地气儿。 今日的文章图片选择橙子有两个原因,第一,橙色给人...
    八月淡鱼阅读 397评论 0 0
  • 今天多云,天空灰蒙蒙的,想必接下来几天是阴雨连绵了。 不知道南京的天气如何,不会比泗洪好哪里去吧。离开才能体会家的...
    爱喝酸奶的妞妞啊阅读 70评论 0 1
  • 姜太公直到70岁整天垂钓于渭水,终于遇到周文公,从此英雄有了用武之地。 64岁的黄忠跟随刘备入川,表现突出,勇冠三...
    jschenfeng阅读 299评论 0 0