• 大小: 494KB
    文件类型: .gz
    金币: 2
    下载: 1 次
    发布日期: 2021-05-13
  • 语言: Html/CSS
  • 标签:

资源简介

这个是我自己写的cordova的插件。 主要是实现的功能是从本地图库选图片,根据选择的图片来判断是否含有二维码。 如果有,直接识别并返回信息,如有没有,会提示图片格式错误。 解压后,大家可以直接添加到cordova项目里。 在html添加一个按钮和点击事件,就可以直接运行了

资源截图

代码片段和文件信息

package com.wy.plugin;


import android.content.Intent;
import android.database.Cursor;
import android.os.Build;

import android.os.Looper;
import android.provider.MediaStore;
import android.widget.Toast;

import com.google.zxing.Result;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

import static android.app.Activity.RESULT_OK;

public class photoImage extends CordovaPlugin {
    private CallbackContext mCallbackContext;
    private int RESULT_LOAD_IMAGE = 1;
    private String photo_path = null;
    private String recode = null;


    @Override
    public boolean execute(String action JSONArray args CallbackContext callbackContext) throws JSONException {
        this.mCallbackContext = callbackContext;
        if (“getQRImageInfo“.equals(action)) {
            getPic();

            return true;
        }
        mCallbackContext.error(“error“);
        return false;
    }

    /**
     * 从本地图库选图片
     */
    private void getPic() {
        Intent innerIntent = new Intent(); // “android.intent.action.GET_CONTENT“
        if (Build.VERSION.SDK_INT < 19) {
            innerIntent.setAction(Intent.ACTION_GET_CONTENT);
        } else {
            // innerIntent.setAction(Intent.ACTION_OPEN_DOCUMENT);  这个方法报 图片地址 空指针;使用下面的方法
            innerIntent.setAction(Intent.ACTION_PICK);
        }

        innerIntent.setType(“image/*“);

        Intent wrapperIntent = Intent.createChooser(innerIntent “选择二维码图片“);

        cordova.startActivityForResult(this wrapperIntent RESULT_LOAD_IMAGE);

    }

    @Override
    public void onActivityResult(int requestCode int resultCode Intent data) {
        super.onActivityResult(requestCode resultCode data);
        if (requestCode == RESULT_LOAD_IMAGE) {
            if (resultCode == RESULT_OK) {

                String[] proj = {MediaStore.Images.Media.DATA};
                // 获取选中图片的路径
                final Cursor cursor = cordova.getActivity().getContentResolver().query(data.getData()
                        proj null null null);

                if (cursor.moveToFirst()) {
                    int column_index = cursor
                            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                    photo_path = cursor.getString(column_index);

                    if (photo_path == null) {
                        photo_path = Utils.getPath(cordova.getActivity()
                                data.getData());

                    }

                }

                cursor.close();
                cordova.getThreadPool().execute(new Runnable() {
                    public void run() {

                        Result result = Utils.scanningImage(photo_path);
                        // String result = decode(photo_path);
                        if (result == null) {
                            Looper.prepare();
                            Toast.makeText(cordova.getActivity() “图片格式有误

评论

共有 条评论

相关资源