美文网首页
轻松获取网页的更多基本信息(LinkPresentation.f

轻松获取网页的更多基本信息(LinkPresentation.f

作者: 代码记忆TPM | 来源:发表于2020-04-21 18:28 被阅读0次
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之后便可以用这个类库,还是很方便的。

相关文章

  • 轻松获取网页的更多基本信息(LinkPresentation.f

    网页中其实包含了很多信息,能否轻易获取这些信息内容呢?最近翻看开发文档,看到一个iOS13开始新推出的关于web的...

  • 微信H5授权登录

    1、网页授权条件 1.1 设置 登录公众号,开发-接口全县-网页服务-网页账号-网页授权获取用户基本信息 设置...

  • 微信订阅号通过获取Openid并获取用户基本信息

    我们知道,服务号有获取用户基本信息的接口,通过oauth2.0网页授权获取的。但是认证的订阅号也有获取用户基本信息...

  • 微信-OAuth2.0鉴权

    OAuth2.0鉴权 公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 网页授权获取用户基本...

  • 【HtmlUnit】网页爬虫进阶篇

    之前,亦枫写过一篇关于使用 Jsoup 抓取网页内容的文章: 【Jsoup】HTML解析器,轻松获取网页内容 Js...

  • 微信网页开发@授权

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 关于...

  • 微信网页授权

    背景 用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 配...

  • 微信开发入门者 学会网页获取用户基本信息

    如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 关于...

  • 微信公众号开发 (二) 网页授权

    引言 用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 步...

  • 拥抱微信,多个公众账号开发

    Unionid机制 1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在...

网友评论

      本文标题:轻松获取网页的更多基本信息(LinkPresentation.f

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