在做weex開發(fā)時(shí)使用leancloud文件上傳-創(chuàng)新互聯(lián)

不同于移動(dòng)端原生開發(fā),當(dāng)開發(fā)者使用weex移動(dòng)開發(fā)時(shí),使用第三方SDK比較棘手。因?yàn)榈谌降腏S SDK是無(wú)法直接拿來(lái)使用的,環(huán)境不同。必須使用原生SDK,下面我介紹一下自己是如何在weex開發(fā)時(shí)(安卓)使用leancloud的服務(wù)的。

創(chuàng)新互聯(lián)專注于固始企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。固始網(wǎng)站建設(shè)公司,為固始等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

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

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

其實(shí)用Gradle也可以啊,我喜歡下載手動(dòng)集成。

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

  AVOSCloud.initialize(this,yourappid,yourappkey)

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

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

  WXSDKEngine.initialize(this,config);

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

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

  @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頁(yè)面的activity類里,重寫onActivityResult方法

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

    Toast.makeText(getApplicationContext(),"這個(gè)函數(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(),"請(qǐng)選擇圖片",Toast.LENGTH_SHORT).show();

    }

  }

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

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

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

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

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

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

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:在做weex開發(fā)時(shí)使用leancloud文件上傳-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article6/dhedog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

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

成都app開發(fā)公司