我在Titanium Studio 3.1.3中有一个应用程序扫描QR码来处理它。我是这样做的:scan_qr.js
function scan_qr() {
var Window = Ti.UI.createWindow({
backgroundColor: '#000',
navBarHidden : false,
exitOnClose : false
});
function scan(callback){
var intent = Ti.Android.createIntent({
action: 'com.google.zxing.client.android.SCAN'
});
intent.putExtra('SCAN_MODE', 'QR_SCAN_MODE');
var activity = Ti.Android.currentActivity;
activity.startActivityForResult(intent, function(e) {
if (e.resultCode == Ti.Android.RESULT_OK) {
var contents = e.intent.getStringExtra('SCAN_RESULT'),
format = e.intent.getStringExtra('SCAN_RESULT_FORMAT');
qr_content = contents;
callback(qr_content);
} else if (e.resultCode == Ti.Android.RESULT_CANCELED) {
qr_content = 'canceled';
}
});
};
return{
scan: scan
};
}
module.exports = scan_qr;
和通话功能:
QR = require('scan_qr')
qr = new QR();
qr.scan(function(qr_code){alert(qr_code)});
但从不抛出警报(qr_code);它甚至没有设置qr_content 也许我没有完成活动或意图。
我尝试通过从此代码获取窗口参数来完成活动,但它关闭整个应用程序。我该怎么办?
答案 0 :(得分:0)
我建议将此代码放在你的startActivityForResult函数中,也许你会遇到一些错误,为你的问题带来一些启示:
if (e.error) {
Ti.API.info('Error: '+e.error);
Ti.UI.createAlertDialog({
title:'Error!',
message:e.error
}).show();
}
还有一个titanium module to scan barcodes,看看如何在钛here上安装模块。可以找到使用此模块的示例here。