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();
これで、完成です。非常に簡単。
他の設定については公式サイトを参照してください。