apiCloud上傳頭像


apiCloud上傳頭像

1.拍照

2.從相機中選擇

aui布局

<li class="aui-list-item">
            <div class="aui-list-item-inner">
                <div class="aui-list-item-label">
                    頭像
                </div>
                <div class="aui-list-item-input" style="margin:15px;" onclick="showAction();">
                    <img id="avatar" name="avatar" src="../image/default_headimg.png" width="100px;">
                </div>
            </div>
</li>

2.js事件,彈出選擇

function showAction(){
    api.actionSheet({
        title: '上傳頭像',
        cancelTitle: '取消',
        buttons: ['拍照','從手機相冊選擇']
    }, function(ret, err) {
        if (ret) {
            getPicture(ret.buttonIndex);
        }
    });
}

3.處理事件

function getPicture(sourceType) {
    if(sourceType==1){ // 拍照
        //獲取一張圖片
        api.getPicture({
            sourceType: 'camera',
            encodingType: 'png',
            mediaValue: 'pic',
            allowEdit: false,
            quality: 90,
            saveToPhotoAlbum: true
        }, function(ret, err) {
            // 獲取拍照數據並處理
            if (ret) {
                var imgSrc = ret.data;
                if (imgSrc != "") {
                    var ele=$api.dom('#avatar');
                    $api.attr(ele,'src',imgSrc);
                }
            }
        });
    }
    else if(sourceType==2){ // 從相機中選擇
        //UIMediaScanner 是一個多媒體掃描器,可掃描系統的圖片、視頻等多媒體資源
        var obj = api.require('UIMediaScanner');
        obj.open({
            //返回的資源種類,picture(圖片),video(視頻),all(圖片和視頻)
            type: 'picture',
            //(可選項)圖片顯示的列數,須大於1
            column: 4,
            max: 1,
            //(可選項)圖片排序方式,asc(舊->新),desc(新->舊)
            sort: {
                key: 'time',
                order: 'desc'
            },
            //(可選項)模塊各部分的文字內容
            texts: {
                stateText: '已選擇*項',
                cancelText: '取消',
                finishText: '完成'
            },
            styles: {
                bg: '#fff',
                mark: {
                    icon: '',
                    position: 'bottom_right',
                    size: 20
                },
                nav: {
                    bg: '#eee',
                    stateColor: '#000',
                    stateSize: 18,
                    cancleBg: 'rgba(0,0,0,0)',
                    cancelColor: '#000',
                    cancelSize: 18,
                    finishBg: 'rgba(0,0,0,0)',
                    finishColor: '#000',
                    finishSize: 18
                }
            }
        }, function(ret) {
            // 獲取圖片數據並處理
            if (ret) {
                if (getJsonObjLength(ret.list) != 0) {
                    var ele=$api.dom('#avatar');
                    $api.attr(ele,'src',ret.list[0].path);
                }
            }
        });
    }
}

第一種是apiCloud自帶的,獲取拍照數據的接口。

第二種需要引入模塊,UIMediaScanner。

兩種方式都能獲取圖片的app中的地址,把地址通過ajax傳遞出去到服務器,就可以完成保存頭像了。

調試請用手機,不然看不到效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM