ZBarSDKの準備
バーコードをスキャンするライブラリはいくつかありますが、わりと高速で使いやすいZBarを使うことにします。ネイティブアプリの場合は、このSDKをそのまま突っ込んでやれば良いんですが、Titanium Mobileの場合は tibar というモジュールを使用します。
1:tibarここから、iPhone版のtibarをダウンロードします。
2:解凍したモジュールを /Library/Application Support/Titanium/module に配置します。
3: /Library/Application Support/Titanium/mobilesdk/osx/1.7.2/iphone/iphone/Titanium.xcodeproj をXCodeで立ち上げます。
4:下記ライブラリをリンク。Bulde PhasesからLink Binary With Librariesから追加。
- QuartzCore.framework
- libiconv.dylib
- AVFoundation.framework
- CoreMedia.framework
- CoreVideo.framework
5:XCodeを閉じる。
Titanium Studioでアプリを作る
準備が整ったので、Titanium Studioでプロジェクトを作成します。
まずは、tiapp.xmlを編集して、モジュールを追加します。versionの所はダウンロードしてきたtibarに合わせてください。
tiapp.xml
<modules>
<module version="0.4.2">tibar</module>
</modules>
app.js
tibarの公式サイトにもサンプルがありますが、バーコード解析がカメラじゃなくて、カメラロールの設定になっているので、ここではカメラで自動的に認識するようにしてみます。
var win = Titanium.UI.createWindow({
title:'TiBar Test App',
backgroundColor:'#fff'
});
var TiBar = require('tibar');
var label = Titanium.UI.createLabel({
text:'TiBar App',
textAlign:'center',
width:'auto'
});
var button = Ti.UI.createButton({
title: "Scan barcode",
height:50,
width:250,
bottom:20
});
button.addEventListener('click', function(){
TiBar.scan({
configure: {
classType: "ZBarReaderViewController",
sourceType: "Camera",
cameraMode: "Default", // Default, Sampling, Sequence
config:{
"showsCameraControls":true, // (VC)
"showsZBarControls":true,
"tracksSymbols":true, // the tracking rectangle that highlights barcodes
"enableCache":true,
"showsHelpOnFail":true,
"takesPicture":false
},
},
success:function(data){
Ti.API.info('TiBar success callback!');
if(data && data.barcode){
Ti.UI.createAlertDialog({
title: "Scan result",
message: "Barcode: " + data.barcode + " Symbology:" + data.symbology
}).show();
}
},
cancel:function(){
Ti.API.info('TiBar cancel callback!');
},
error:function(){
Ti.API.info('TiBar error callback!');
}
});
});
win.add(label);
win.add(button);
win.open();
これで、完成です。非常に簡単。
他の設定については公式サイトを参照してください。
