其實用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ā)。
新聞熱點(diǎn)
疑難解答