NSHTTPCookie的使用

本文介绍了一种在iOS应用中利用UIWebView显示文章并通过读取cookie中的特定数据来实现分享功能的方法。该方案解决了后台无法额外提供分享所需信息的问题,详细展示了如何从cookie中提取分享所需的标题、文本和图片等数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中用UIWebView根据请求链接加载一篇文章,产品要求在导航栏上加一个分享按钮将这边文章分享出去,但是在当前的页面也就只能获取请求文章的链接,分享的模板需要有标题,子标题,还有图片,还有点开分享出去的跳转链接。

后台不允许增加字段,跟前端开发大佬商量后,大佬介绍说试试通过请求链接拿到cookie中的数据,他会把要分享出去的内容加在cookie上,类似字典去获取,我第一次听到感觉是一脸懵逼的,后面了解一下,终于通过cookie获取到相应的数据。

以下是代码实现案例

-(void)shareBtnClick
{
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *cookies = [storage cookiesForURL:self.webView.request.URL];
    NSEnumerator *enumerator = [cookies objectEnumerator];
    NSHTTPCookie *cookie = nil;
    while (cookie = [enumerator nextObject]) {
        if ([cookie.name isEqualToString:@"share"]) {
            //获取cookie中的数据
            NSData *data = [[NSData alloc] initWithBase64EncodedString:cookie.value options:0];
            NSDictionary *responseJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
            NSArray *urls = [responseJSON[@"url"] componentsSeparatedByString:@"?"];//去除token等参数,如果没有分隔符,返回字符串本身
            //分享出去的打开链接
            NSString *shareUrl = urls.count ? urls[0]:nil;
            //分享的模型 @"title"分享标题 @"text"分享的文本 @"imgUrl" 分享的图片资源路径
            ShareItem *shareItem = [ShareItem shareItemWithTitle:responseJSON[@"title"] text:responseJSON[@"text"] imageUrl:responseJSON[@"imgUrl"] url:shareUrl];
            //展示分享面板
            [shareItem share];

        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值