如何在App中實現朋友圈功能之四在朋友圈中添加發送圖片功能——箭扣科技Arrownock

如何在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中實現朋友圈功能系列文章:

之一朋友圈實現原理淺析

之二快速實現用戶信息的自定義

之三快速實現雙向好友功能

之四在朋友圈中添加發送圖片功能

之五點贊、評論屬性詳細解析

之六快速實現下拉加載朋友圈功能

之七快速實現上拉加載朋友圈功能

之八頁面加載功能的邏輯與實現



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章