whole_func_string: function (success, fail, args, env) {
  		var result = new PluginResult(args, env);
  		resultObjs[result.callbackId] = result;
  		readCallback = result.callbackId;
  		var views = qnx.webplatform.getWebViews();
  		var handle = null;
  		var group = null;
  		var z = -1;
  		for (var i = 0; i < views.length; i++) {
  			if (views[i].visible && views[i].zOrder > z){
  				z = views[i].zOrder;
  				group = views[i].windowGroup;
  				handle = views[i].jsScreenWindowHandle;
  			}
  		}
  		if (handle !== null) {
  			var values = { group: group, handle: handle };
  			result.ok(barcodescanner.getInstance().startRead(result.callbackId, values), true);
  		} else {
  			result.error("Failed to find window handle", false);
  		}
  	}
func_code_string: function (success, fail, args, env) {
  		var result = new PluginResult(args, env);
  		resultObjs[result.callbackId] = result;
  		readCallback = result.callbackId;
  		var views = qnx.webplatform.getWebViews();
  		var handle = null;
  		var group = null;
  		var z = -1;
  		for (var i = 0; i < views.length; i++) {
  			if (views[i].visible && views[i].zOrder > z){
  				z = views[i].zOrder;
  				group = views[i].windowGroup;
  				handle = views[i].jsScreenWindowHandle;
  			}
  		}
  		if (handle !== null) {
  			var values = { group: group, handle: handle };
  			result.ok(barcodescanner.getInstance().startRead(result.callbackId, values), true);
  		} else {
  			result.error("Failed to find window handle", false);
  		}
  	}
func_documentation_string: methods to start and stop scanning