在做weex開發(fā)時使用leancloud文件上傳

 不同于移動端原生開發(fā),當(dāng)開發(fā)者使用weex移動開發(fā)時,使用第三方SDK比較棘手。因為第三方的JS SDK是無法直接拿來使用的,環(huán)境不同。必須使用原生SDK,下面我介紹一下自己是如何在weex開發(fā)時(安卓)使用leancloud的服務(wù)的。

10余年的迎澤網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整迎澤建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“迎澤網(wǎng)站設(shè)計”,“迎澤網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

首先去leancloud的安卓SDK下載頁面,下載SDK,這里我只使用了最基礎(chǔ)的SDK包

<img src="/uploads/default/original/2X/5/582ffee695e0192ae085f0bc0e033543b316f673.png" width="452" height="221"> 

其實用Gradle也可以啊,我喜歡下載手動集成。

然后在mainApplication.java文件中onCreat()方法里初始化

    AVOSCloud.initialize(this,yourappid,yourappkey)   

做過weex開發(fā)都知道,這個方法里面還會初始化WXSDKEngine和ImageAdapter,它們不沖突。

 

    InitConfig config = new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build();

    WXSDKEngine.initialize(this,config);

現(xiàn)在進(jìn)入正題了,如何在weex頁面實現(xiàn)上傳圖片呢?

Step.1  擴(kuò)展一個Module,調(diào)用手機(jī)系統(tǒng)的圖庫

    @WXModuleAnno(runOnUIThread = true)

    public void uploadp_w_picpath(){

        int REQUESTCODE_PICK = 0;

        Intent intent;

        if(Build.VERSION.SDK_INT < 19){

            Log.d("chenlei api level","Your api is lower than 19");

            intent = new Intent(Intent.ACTION_GET_CONTENT);

            intent.setType("p_w_picpath/*");

        }else{

            Log.d("chenlei api level","Your api is higher than 19");

            intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

        }

        ((Activity)mWXSDKInstance.getContext()).startActivityForResult(intent,REQUESTCODE_PICK);

    }

Step.2 在負(fù)責(zé)渲染weex頁面的activity類里,重寫onActivityResult方法

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        Toast.makeText(getApplicationContext(),"這個函數(shù)有效嗎?",Toast.LENGTH_SHORT);

        super.onActivityResult(requestCode, resultCode, data);

        String s = String.valueOf(resultCode);

        if(resultCode == Activity.RESULT_OK && requestCode ==  REQUESTCODE_PICK){

            Uri uri = data.getData();

            Cursor cursor = getContentResolver().query(uri, null, null, null,null);

            if (cursor != null && cursor.moveToFirst()) {

                Path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));

                Log.d("Path", Path);

            }

            try {

                final AVFile file = AVFile.withAbsoluteLocalPath("test.png",Path);

                file.saveInBackground(new SaveCallback() {

                    @Override

                    public void done(AVException e) {

                        Log.d(TAG, file.getUrl());

                        WXBridgeManager manager = WXBridgeManager.getInstance();

                        Map<String,String> urlData = new HashMap<String, String>();

                        urlData.put("url",file.getUrl());

                        urlData.put("showp_w_picpath","true");

                        urlData.put("uploadhint","改變圖片");

                        urlData.put("showdelete","true");

                        String jsonStr = JSON.toJSONString(urlData);

                        WXRefreshData refreshData = new WXRefreshData(jsonStr,false);

                        manager.refreshInstance(mInstance.getInstanceId(),refreshData);

                    }

                }, new ProgressCallback() {

                    @Override

                    public void done(Integer integer) {

                        Toast.makeText(getApplicationContext(),"已經(jīng)上傳"+String.valueOf(integer)+"%",Toast.LENGTH_SHORT).show();

                    }

                });

            }catch(Exception e){

                Toast.makeText(getApplicationContext(),"上傳圖片失敗",Toast.LENGTH_SHORT).show();

            }

        }else {

            Toast.makeText(getApplicationContext(),"請選擇圖片",Toast.LENGTH_SHORT).show();

        }

    }

小提示:我們可以在AVFile的回調(diào)函數(shù)中創(chuàng)建WXBridgeManager獲取當(dāng)前實例,獲取文件上傳的進(jìn)度和最終URL,來更新頁面組件狀態(tài)和信息。

簡單幾步,就實現(xiàn)了leancloud在weex開發(fā)中的使用,感謝leancloud提供的優(yōu)秀資源,你們是開發(fā)者的福音呀。

更多源碼可以去github上查看,歡迎拍磚和star。

<img src="/uploads/default/original/2X/1/1ab589f1125cb3893ff1d0dbe7c9cc5b8d2f77d7.png" width="466" height="500"> 

項目地址----------->[leancloud在weex開發(fā)中的使用項目實例][1]

  [1]: https://github.com/iChenLei/weex-android-joke

有任何疑問可以聯(lián)系我的Email 2470828450@qq.com,交流weex和leancloud開發(fā)。

本文題目:在做weex開發(fā)時使用leancloud文件上傳
當(dāng)前URL:http://muchs.cn/article48/ipisep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計公司、品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)商城網(wǎng)站、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化