您的位置:首页 > 移动开发

如何在App中实现朋友圈功能之四在朋友圈中添加发送图片功能——箭扣科技Arrownock

2015-12-02 12:03 656 查看

如何在App中实现朋友圈功能

之四

在朋友圈中添加发送图片功能

实现概念:当用户在界面点击发送按钮的时候,如果已经有选择好的图片,我们的做法是先上传图片到服务器,再将图片Id作为Post的属性上传。这里跳转到用户聊天发送接收图片 + 链接 在技术分享关于用户聊天发送接收图片的时候,我们讲解过Photo API的使用,这里我们再简单提一下如何使用。发送图片调用AnSocial的Photos/create.json,参数有user_id(用户的id)、 AnSocialFile(图片文件)、resolutions(需要缩略图的尺寸,一般为100x100或200x200)。由于朋友圈允许复数图片的展示,所以我们在调用Photos/create.json时,需要调用多次。这时候需要使用一个小技巧来判断到最后一张图片上传完成时,才调用posts/create.json。这个小技巧就是:设置一个全局变量数字类型的photoIndexCount,每上传一张图片,photoIndexCount++在上传图片回调方法中进行判断,如果photoIndexCount等于用户上传图片的总数,则调用posts/create.json.上传图片是为了拿到图片id作为后面创建Post的参数,所以我们还应该设置一个全局变量为字符串类型的photo_ids,在上传图片成功的回调方法中,将得到的photo_id以”,”分隔的方式组装到photo_ids里。 实现步骤:1、 上传图片 代码参考(以iOS为例):
//上传图片
[_anSocial sendRequest:@"photos/create.json" method:AnSocialMethodPOST params:params
success:^(NSDictionary *response) {
//上传图片成功后,图片指数增长1
_photoIndexCount ++;
//当图片指数和图片总数相等时,调用发送Post方法,增加photo_ids参数
if (_photoIndexCount == _photoTotalCount) {
//将当前response中的id组装到photo_ids里
NSString *photoId = [[[response objectForKey(@"response")]objectForKey
:@"photo"]objectForKey:@"id"];
_photo_ids =[_photo_idsstringByAppendingString:photoId];
sendPost();
} else {
//将当前response中的id组装到photo_ids里
NSString *photoId = [[[response objectForKey:(@"response")]
objectForKey:@"photo"] objectForKey:@"id"];
photoId = [photoIdstringByAppendingString:@","];
_photo_ids = [_photo_idsstringByAppendingString:photoId];
}
} failure:^(NSDictionary *response) {
//[selfhandleFailure:response];
}];
2、发送Post
    if (nil != _photo_ids && 0 != _photo_ids.length){[params setObject:_photo_ids forKey:@"photo_ids"];}
提示:在发送Post之前,其中还值得注意的一点是图片是要展示在界面上的,多张图片太大的时候很容易造成内存溢出App闪退,所以我们需要在展示图片的时候将图片进行压缩,压缩图片基本上分为两个思路,压缩像素点,压缩尺寸,Android和iOS各有不同的做法。如何在App中实现朋友圈功能系列文章:之一朋友圈实现原理浅析之二快速实现用户信息的自定义之三快速实现双向好友功能之四在朋友圈中添加发送图片功能之五点赞、评论属性详细解析之六快速实现下拉加载朋友圈功能之七快速实现上拉加载朋友圈功能之八页面加载功能的逻辑与实现本文出自 “箭扣科技Arrownock” 博客,转载请与作者联系!
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: