weex?打開本地相冊(cè)

獲取通訊錄、掃碼、打開相冊(cè)、拍照等操作,都是一個(gè)套路,就是創(chuàng)建module,原生實(shí)現(xiàn)這些方法,前端調(diào)用是時(shí)候返回最終的結(jié)果。
下面是如何打開本地相冊(cè),并獲取照片路徑。

public class PickImageModule extends WXModule {

    public static final int REQUEST_CODE = 10010;
    public final static int CAMERA_REQUEST_CODE= 1;

    protected JSCallback callback;
    
    @JSMethod(uiThread = true)
    public void choosePhoto(JSCallback callback) {
        if (ContextCompat.checkSelfPermission(mWXSDKInstance.getContext(),
                Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions((WXPageActivity) mWXSDKInstance.getContext(),
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    CAMERA_REQUEST_CODE);
        } else { 
            choosePhoto();
        }
        this.callback = callback;
    }

    private void choosePhoto() {
        Intent intentToPickPic = new Intent(Intent.ACTION_PICK, null);   intentToPickPic.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/jpeg");
        ((Activity) (mWXSDKInstance.getContext())).startActivityForResult(intentToPickPic, GALLERY_REQUEST_CODE);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == WXPageActivity.RESULT_OK) {
            switch (requestCode) {
                case GALLERY_REQUEST_CODE: {
                    try {
                        Uri selectedImage = data.getData();
                        String[] filePathColumns = {MediaStore.Images.Media.DATA};
                        Cursor c = mWXSDKInstance.getContext().getContentResolver().query(selectedImage, filePathColumns, null, null, null);
                        c.moveToFirst();
                        int columnIndex = c.getColumnIndex(filePathColumns[0]);
                        String picturePath = c.getString(columnIndex);
                        c.close();
                        callback.invoke(picturePath);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    break;
                }
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

}

配置相應(yīng)的權(quán)限,在WXApplication中加入

   WXSDKEngine.registerModule("pickPhoto", PickImageModule.class);

然后就是前端調(diào)用

const pickPhoto = weex.requireModule('pickPhoto')
...         //在方法中直接使用就行了
            pickPhoto .choosePhoto(res => {
                   ...
                })
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 時(shí)節(jié)交替,早晨和晚上透出的陣陣涼意宣告著秋天已來到。 然而中午依舊會(huì)是艷陽高照,帶來的燥熱感提醒著大家夏天還沒有結(jié)...
    咩一閱讀 203評(píng)論 0 0
  • 夜 落幕了 對(duì)著窗戶外著呆 看著天空中的星星 以及那皎潔的彎月 想必就要圓了 圓了遠(yuǎn)方 圓了期盼 圓了思念 那一顆...
    晚晴先生閱讀 386評(píng)論 2 0
  • 今天藤子說說掌握速讀這門技能你將得到什么,有機(jī)會(huì)變成一個(gè)什么樣的人! 1、掌握了快速閱讀,能夠讓你省時(shí)間 更快的瀏...
    張立藤閱讀 664評(píng)論 0 2
  • 2018年6月10日 星期天 晴天 【一】 課前復(fù)習(xí)。 由于學(xué)員們?cè)诩揖毩?xí)較少,直接導(dǎo)致課堂上用口令帶課結(jié)結(jié)...
    雨夜梅子閱讀 1,266評(píng)論 3 6

友情鏈接更多精彩內(nèi)容