国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

weex開發(fā)實戰(zhàn)(8)--在weex頁面實現(xiàn)圖片上傳

2019-11-09 18:02:09
字體:
供稿:網(wǎng)友
不同于移動端原生開發(fā),當(dāng)開發(fā)者使用weex移動開發(fā)時,使用第三方SDK比較棘手。因為第三方的JS SDK是無法直接拿來使用的,環(huán)境不同。必須使用原生SDK,下面我介紹一下自己是如何在weex開發(fā)時(安卓)使用leancloud的服務(wù)的。首先去leancloud的安卓SDK下載頁面,下載SDK,這里我只使用了最基礎(chǔ)的SDK包其實用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 uploadimage(){        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("image/*");        }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("showimage","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。項目地址----------->[leancloud在weex開發(fā)中的使用項目實例][1]  [1]: https://github.com/iChenLei/weex-android-joke有任何疑問可以聯(lián)系我的Email 2470828450@QQ.com,交流weex和leancloud開發(fā)。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵璧县| 尼勒克县| 中卫市| 宁蒗| 页游| 阳东县| 老河口市| 五家渠市| 上饶县| 大理市| 虎林市| 遂平县| 工布江达县| 长丰县| 万安县| 安仁县| 临武县| 东港市| 沈阳市| 达拉特旗| 静海县| 瓮安县| 芦山县| 大庆市| 嘉鱼县| 辛集市| 安康市| 廉江市| 衡阳县| 来宾市| 枝江市| 张家界市| 揭东县| 登封市| 宁远县| 乌兰察布市| 天津市| 望谟县| 涡阳县| 黔江区| 本溪|