资源简介
这个是我自己写的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() “图片格式有误
- 上一篇:Echart.rar
- 下一篇:个人主页html模板 静态网页模板
评论
共有 条评论