抖音私信名片纯文本跳转自定义关注微信脚本代码技术方法分享

作者 : 快手私信名片 本文共3266个字,预计阅读时间需要9分钟 发布时间: 2021-04-28 共37人阅读
17shou专业为中小微企业提供抖音落地页制作、设计;网站跳转微信;抖音私信名片制作;快手私信名片制作;快手落地页设计、制作;QQ私信名片;微信图文卡片;抖音快手网站建设;抖音快手私信系统定制开发;小程序开发;微商城开发;微信开发等服务项目。技术咨询QQ:2676163226

抖音私信名片小编做一个抖音私信名片链接,分析抖音app的原理后,需要一些加工方法,步骤记录如下:


Charles数据采集

对于移动端开发者来说,并不是每个项目都有机会可以直接接触到后端代码,所以进行网络请求调试时,借助Charles、Fiddler、Wireshark等测试工具对请求进行抓包分析,将使请求细节清晰明了的展现在开发者眼前,降低开发者的调试难度。除此之外,对他人开发的app网络请求进行抓包分析也有助于学习其API架构思路。在这里我们则使用Charles分析抖音app的API设计并获取相应的json请求数据,用来搭建本项目所需使用到的网络请求API。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

抓包步骤:电脑端安装Charles并打开,然后打开需要进行网络请求抓包的移动设备,选择设置→无限局域网→”当前连接的网络名称”→蓝色感叹号图标→配置代理→手动,服务器一栏填入电脑端的ip地址,端口填写8888(Charles默认端口,可修改),最后点击保存即可进行抓包分析。HTTPS请求抓包则需在移动端浏览器打开chls.pro/ssl地址并安装证书即可,注意需要在移动端设备设置了代理的情况下进行。

如下图所显示,我们便获取了抖音所调用的网络请求接口数据,根据这些接口数据搭建了本项目所使用的网络请求API。

网络请求API接口

抖音demo的数据来自Charles抓包,这些数据被抓取后存储在抖音demo对应的服务器数据库中,以这些数据为基础搭建了抖音demo中的网络请求API,网络请求数据返回格式为json,所有接口返回的json数据结构如下所示:

//重写layoutAttributesForElementsInRect方法

-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect{

//获取当前在屏幕rect中显示的元素属性

NSMutableArray<uicollectionviewlayoutattributes*>*superArray=[[superlayoutAttributesForElementsInRect:rect]mutableCopy];

//移除掉所有Header和Footer类型的元素,因为抖音个人主页中只有第一个section包含Header和Footer类型元素,

即移除需要固定的Header和Footer,因为后续会单独添加,为了避免重复处理。

for(UICollectionViewLayoutAttributes*attributesin[superArraymutableCopy]){

if([attributes.representedElementKindisEqualToString:UICollectionElementKindSectionHeader]){

[superArrayremoveObject:attributes];

}

}

//单独添加上一步移除的Header和Footer,单独添加是因为第一步只能获取当前在屏幕rect中显示的元素属性,当第一个Sectioin移除屏幕便无法获取Header和Footer,

这是需要单独添加Header和Footer以及第二部单独移除Header和Footer的原因。

[superArrayaddObject:[superlayoutAttributesForSupplementaryViewOfKind:UICollectionElementKindSectionHeaderatIndexPath:[NSIndexPathindexPathForItem:0inSection:0]]];

[superArrayaddObject:[superlayoutAttributesForSupplementaryViewOfKind:UICollectionElementKindSectionFooteratIndexPath:[NSIndexPathindexPathForItem:0inSection:0]]];

//codebywww.douyin1688.com

//循环当前获取的元素

for(UICollectionViewLayoutAttributes*attributesinsuperArray){

//判断是否是第一个section

if(attributes.indexPath.section==0){

//判断是否为Header类型

if([attributes.representedElementKindisEqualToString:UICollectionElementKindSectionHeader]){

//获取Header的Frame

CGRectrect=attributes.frame;

//判断Header的bottom是否滑动到导航栏下方

if(self.collectionView.contentOffset.y+self.navHeight-rect.size.height>rect.origin.y){

//修改Headerframe的y值

rect.origin.y=self.collectionView.contentOffset.y+self.navHeight-rect.size.height;

attributes.frame=rect;

}

//设施Header层级,保证Header显示时不被其它cell覆盖

attributes.zIndex=5;

}

//判断是否为Footer类型

if([attributes.representedElementKindisEqualToString:UICollectionElementKindSectionFooter]){

//获取Footer的Frame

CGRectrect=attributes.frame;

//判断Footer的top是否滑动到导航栏下方

if(self.collectionView.contentOffset.y+self.navHeight>rect.origin.y){

//修改Footerframe的y值

rect.origin.y=self.collectionView.contentOffset.y+self.navHeight;

attributes.frame=rect;

}

//设施Footer层级,保证Footer显示时不被其它cell覆盖,同时显示在Header之上

attributes.zIndex=10;

}

}

}

//返回修改后的元素属性

return[superArraycopy];

}

//重写shouldInvalidateLayoutForBoundsChange方法

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBound{

returnYES;//返回YES,修改newBound内的元素属性

}

结构总览

本项目共分为三个部分。第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、UITableView控制多个视频源播放。第三部分则为WebSocket实现IM即时聊天,其中穿插文本计算、表情编辑等功能。三个部分都涉及网络请求、json数据模型转换以及手势、动画效果处理。项目文件结构则如下图所示:

布局、接口分析

抖音聊天界面和大部分app聊天界面功能设计上基本一致,UITableView用于显示聊天消息列表,底部一个UITextView用于消息文本编辑,除此之外还有UICollectionView实现的表情选择器、图片选择器用于发送表情、图片信息。

在线演示地址 www.dycard.com.cn

    提供快手商家号,快手服务号,快手蓝v认证,快手落地页,快手私信名片,快手消息卡片,快手跳转微信技术服务
    快手商家号_快手服务号_快手蓝v认证_快手落地页_快手名片卡片_快手跳转微信 » 抖音私信名片纯文本跳转自定义关注微信脚本代码技术方法分享

    常见问题FAQ

    跳转技术服务是免费的吗?
    哈哈哈,免费?难道我们是做慈善的?免费?这辈子都不可能免费!


    金价查询系统、今日金价、每日金价、国际金价走势、黄金价格、今日金价查询、每日金价查询、今日银价查询、每日银价查询、黄金价格走势 www.chajinjia.top、www.chajinjia.net、www.chajinjia.vip、www.chajinjia.com.cn、 www.chajinjia.cc、www.chajinjia.net.cn、www.chajinjia.ink、www.chajinjia.fit、 www.chajinjia.link、www.chajinjia.work、www.chajinjia.online、www.chajinjia.fun、www.chajinjia.site、www.chajinjia.shop、www.chajinjia.club、www.chajinjia.xyz、www.chajinjia.store