Titanium(Alloy)에서 바코드 리더와 바코드 출력 결과를 함께 표시
이번에는 Scandit의 Alloy와 같은 쓰기 방법과 스캔 화면에 뷰를 오버레이하여 바코드를 읽은 결과를 동일한 화면에 표시하는 방법을 씁니다.
스캔하는 동안 스캔 결과를 볼 수 있기 때문에 경우에 따라 사용하기 쉬운 앱을 만들 수 있다고 생각합니다.
준비
Scandit을 사용하려면 공식 페이지에서 등록하고 App Key를 취득해야 합니다.
기본적인 사용법은 고마쓰 일성씨가 15분만에 만드는 바코드 리더 앱 에 쓰고 있으므로 여기에서는 할애합니다.
Alloy 쓰는 법
우선, 스캐너 부분의 뷰를 views에 쓰는 코드는 다음과 같습니다.
app/alloy.jsAlloy.Globals.scandit = require("com.mirasense.scanditsdk");
app/views/index.xml<Alloy>
<Window class="container">
<View ns="Alloy.Globals.scandit" id="scannerView" />
</Window>
</Alloy>
app/styles/index.tss".container": {
backgroundColor: "white",
navBarHidden: true
}
"#scannerView": {
width: "100%",
height: "100%"
}
app/controllers/index.js// モジュール読込
// iOS のときはステータスバーを非表示
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
Ti.UI.iPhone.statusBarHidden = true;
}
// 初期化
$.scannerView.init("あなたのScanditのApp Key", 0);
$.scannerView.showSearchBar(false); // 上部に検索バーを表示しない
$.scannerView.showToolBar(true); // scanditのツールバーを表示する
// 成功時のコールバック設定
$.scannerView.setSuccessCallback(function(e) {
alert('barcode の値は ' + e.barcode + ' です');
});
$.index.addEventListener('open', function(e) {
// 各種プラットフォームへの最適化
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
$.scannerView.setOrientation(Ti.UI.orientation);
}
else {
$.scannerView.setOrientation($.index.orientation);
}
$.scannerView.setSize(Ti.Platform.displayCaps.platformWidth, Ti.Platform.displayCaps.platformHeight);
$.scannerView.startScanning(); //バーコードリーダ起動
});
$.index.open();
스캔 결과 화면 오버레이
그런 다음 스캔 결과 화면을 스캐너 위에 오버레이합니다.
app/views/index.xml에 스캔 결과 화면을 추가합니다.
app/views/index.xml<Alloy>
<Window class="container">
<View ns="Alloy.Globals.scandit" id="scannerView" />
<!--スキャン結果画面-->
<View id="overlayView" >
<Label id="barcodeLabel"/>
</View>
<!--/スキャン結果画面-->
</Window>
</Alloy>
app/views/index.xml에 스캔 결과 화면의 속성을 추가합니다.
app/styles/index.tss".container": {
backgroundColor: "white",
navBarHidden: true
}
"#scannerView": {
width: "100%",
height: "100%"
}
/*スキャン結果画面*/
"#overlayView": {
bottom:0,
width:Ti.UI.FILL,
height:"40%",
borderRadius:10,
backgroundColor: 'white'
}
controllers/index.js는 카메라의 바코드 스캔 위치를 setScanningHotSpot을 사용하여 중앙에서 위쪽으로 설정합니다.
또한 스캔이 성공하면 alert에서 바코드 값을 표시하는 대신 이전에 View에 추가한 barcodeLabel에 표시되도록 수정합니다.
app/controllers/index.js// モジュール読込
// iOS のときはステータスバーを非表示
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
Ti.UI.iPhone.statusBarHidden = true;
}
// 初期化
$.scannerView.init("あなたのScanditのApp Key", 0);
$.scannerView.showSearchBar(false); // 上部に検索バーを表示しない
$.scannerView.showToolBar(true); // scanditのツールバーを表示する
// 成功時のコールバック設定
$.scannerView.setSuccessCallback(function(e) {
//barcodeLabelalert('barcode の値は ' + e.barcode + ' です');
$.barcodeLabel.setText('barcodeの値:' + e.barcode);
});
$.scannerView.setScanningHotSpot(0.5, 0.25); //スキャン位置を上部に設定
$.index.addEventListener('open', function(e) {
// 各種プラットフォームへの最適化
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
$.scannerView.setOrientation(Ti.UI.orientation);
}
else {
$.scannerView.setOrientation($.index.orientation);
}
$.scannerView.setSize(Ti.Platform.displayCaps.platformWidth, Ti.Platform.displayCaps.platformHeight);
$.scannerView.startScanning(); //バーコードリーダ起動
});
$.index.open();
Reference
이 문제에 관하여(Titanium(Alloy)에서 바코드 리더와 바코드 출력 결과를 함께 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kacho/items/b7f3a9f44335e59ab2b5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선, 스캐너 부분의 뷰를 views에 쓰는 코드는 다음과 같습니다.
app/alloy.js
Alloy.Globals.scandit = require("com.mirasense.scanditsdk");
app/views/index.xml
<Alloy>
<Window class="container">
<View ns="Alloy.Globals.scandit" id="scannerView" />
</Window>
</Alloy>
app/styles/index.tss
".container": {
backgroundColor: "white",
navBarHidden: true
}
"#scannerView": {
width: "100%",
height: "100%"
}
app/controllers/index.js
// モジュール読込
// iOS のときはステータスバーを非表示
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
Ti.UI.iPhone.statusBarHidden = true;
}
// 初期化
$.scannerView.init("あなたのScanditのApp Key", 0);
$.scannerView.showSearchBar(false); // 上部に検索バーを表示しない
$.scannerView.showToolBar(true); // scanditのツールバーを表示する
// 成功時のコールバック設定
$.scannerView.setSuccessCallback(function(e) {
alert('barcode の値は ' + e.barcode + ' です');
});
$.index.addEventListener('open', function(e) {
// 各種プラットフォームへの最適化
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
$.scannerView.setOrientation(Ti.UI.orientation);
}
else {
$.scannerView.setOrientation($.index.orientation);
}
$.scannerView.setSize(Ti.Platform.displayCaps.platformWidth, Ti.Platform.displayCaps.platformHeight);
$.scannerView.startScanning(); //バーコードリーダ起動
});
$.index.open();
스캔 결과 화면 오버레이
그런 다음 스캔 결과 화면을 스캐너 위에 오버레이합니다.
app/views/index.xml에 스캔 결과 화면을 추가합니다.
app/views/index.xml<Alloy>
<Window class="container">
<View ns="Alloy.Globals.scandit" id="scannerView" />
<!--スキャン結果画面-->
<View id="overlayView" >
<Label id="barcodeLabel"/>
</View>
<!--/スキャン結果画面-->
</Window>
</Alloy>
app/views/index.xml에 스캔 결과 화면의 속성을 추가합니다.
app/styles/index.tss".container": {
backgroundColor: "white",
navBarHidden: true
}
"#scannerView": {
width: "100%",
height: "100%"
}
/*スキャン結果画面*/
"#overlayView": {
bottom:0,
width:Ti.UI.FILL,
height:"40%",
borderRadius:10,
backgroundColor: 'white'
}
controllers/index.js는 카메라의 바코드 스캔 위치를 setScanningHotSpot을 사용하여 중앙에서 위쪽으로 설정합니다.
또한 스캔이 성공하면 alert에서 바코드 값을 표시하는 대신 이전에 View에 추가한 barcodeLabel에 표시되도록 수정합니다.
app/controllers/index.js// モジュール読込
// iOS のときはステータスバーを非表示
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
Ti.UI.iPhone.statusBarHidden = true;
}
// 初期化
$.scannerView.init("あなたのScanditのApp Key", 0);
$.scannerView.showSearchBar(false); // 上部に検索バーを表示しない
$.scannerView.showToolBar(true); // scanditのツールバーを表示する
// 成功時のコールバック設定
$.scannerView.setSuccessCallback(function(e) {
//barcodeLabelalert('barcode の値は ' + e.barcode + ' です');
$.barcodeLabel.setText('barcodeの値:' + e.barcode);
});
$.scannerView.setScanningHotSpot(0.5, 0.25); //スキャン位置を上部に設定
$.index.addEventListener('open', function(e) {
// 各種プラットフォームへの最適化
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
$.scannerView.setOrientation(Ti.UI.orientation);
}
else {
$.scannerView.setOrientation($.index.orientation);
}
$.scannerView.setSize(Ti.Platform.displayCaps.platformWidth, Ti.Platform.displayCaps.platformHeight);
$.scannerView.startScanning(); //バーコードリーダ起動
});
$.index.open();
Reference
이 문제에 관하여(Titanium(Alloy)에서 바코드 리더와 바코드 출력 결과를 함께 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kacho/items/b7f3a9f44335e59ab2b5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<Alloy>
<Window class="container">
<View ns="Alloy.Globals.scandit" id="scannerView" />
<!--スキャン結果画面-->
<View id="overlayView" >
<Label id="barcodeLabel"/>
</View>
<!--/スキャン結果画面-->
</Window>
</Alloy>
".container": {
backgroundColor: "white",
navBarHidden: true
}
"#scannerView": {
width: "100%",
height: "100%"
}
/*スキャン結果画面*/
"#overlayView": {
bottom:0,
width:Ti.UI.FILL,
height:"40%",
borderRadius:10,
backgroundColor: 'white'
}
// モジュール読込
// iOS のときはステータスバーを非表示
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
Ti.UI.iPhone.statusBarHidden = true;
}
// 初期化
$.scannerView.init("あなたのScanditのApp Key", 0);
$.scannerView.showSearchBar(false); // 上部に検索バーを表示しない
$.scannerView.showToolBar(true); // scanditのツールバーを表示する
// 成功時のコールバック設定
$.scannerView.setSuccessCallback(function(e) {
//barcodeLabelalert('barcode の値は ' + e.barcode + ' です');
$.barcodeLabel.setText('barcodeの値:' + e.barcode);
});
$.scannerView.setScanningHotSpot(0.5, 0.25); //スキャン位置を上部に設定
$.index.addEventListener('open', function(e) {
// 各種プラットフォームへの最適化
if(Ti.Platform.osname == 'iphone' || Ti.Platform.osname == 'ipad'){
$.scannerView.setOrientation(Ti.UI.orientation);
}
else {
$.scannerView.setOrientation($.index.orientation);
}
$.scannerView.setSize(Ti.Platform.displayCaps.platformWidth, Ti.Platform.displayCaps.platformHeight);
$.scannerView.startScanning(); //バーコードリーダ起動
});
$.index.open();
Reference
이 문제에 관하여(Titanium(Alloy)에서 바코드 리더와 바코드 출력 결과를 함께 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kacho/items/b7f3a9f44335e59ab2b5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)