ZXingでバーコードスキャンを試してみる。(android)
昨日に引き続きandroidを試してみました。
Androidプロジェクトで同じくzxingをインストール。
カメラとフラッシュライトのところをチェック入れてる。
とりあえず、ここで実機で確認。
何故かわかりませんが、実機に配置されるものの「実行に失敗しました」とでる。
数時間ハマりました。
原因はよくわからんけど、xamarin studioを再起動することで解消しました。
それと日本語入力のモード変換が上手くいかない件も再起動により解消してました。
まだまだ、安定してないみたいですね。
ZXingですがiOSの場合は、カメラ初回起動がちょいと遅いですね。
androidはバーコード読み取り精度がいまいちですね。なかなかフォーカスが合わずスキャンしてくれません。
オプションとかで調整できればよいのですが。
時間があったらそのうち調べてみます。
本日はこれまで。
ZXingでバーコードスキャンを試してみる。(iOS)
nugetにいろいろ便利なライブラリが揃ってるので、それらも使いこなして楽したいですよね。
田淵さんが幾つか紹介されているので、その中から一つ試してみました。
まず、PCLのプロジェクトでzxingをインストール。
iOSプロジェクトでも同じくzxingをインストール。
とりあえず、この時点でのソリューション状態。
PCLプロジェクトのApp.xaml.csを修正。
ここ気づかずに半日ハマっておりました(泣
public App()
{
InitializeComponent();
//MainPage = new testZXingPage();
MainPage = new NavigationPage(new testZXingPage());
}
testZXingPage.xamlに以下追加
<StackLayout Padding="10">
<Button Text="Scan" Clicked="ScanButtonClicked" />
</StackLayout>
testZXingPage.xaml.csに以下追加
async void ScanButtonClicked(object sender, EventArgs s)
{
var scanPage = new ZXingScannerPage()
{
DefaultOverlayTopText = "バーコードを読み取ります",
DefaultOverlayBottomText = "",
};
// スキャナページを表示
await Navigation.PushAsync(scanPage);
scanPage.OnScanResult += (result) =>
{
// スキャン停止
scanPage.IsScanning = false;
// PopAsyncで元のページに戻り、結果をダイアログで表示
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PopAsync();
await DisplayAlert("スキャン完了", result.Text, "OK");
});
//scanedData.Add(result.Text);
};
}
iOSプロジェクト
AppDelegate.csに以下追加
global::ZXing.Net.Mobile.Forms.iOS.Platform.Init();
info.plistに以下追加(追加しないと実行時にスコンと落ちます)
<key>NSCameraUsageDescription</key> <string>カメラを利用してスキャンします。</string>
info.plistを選びメニューで「プログラムから開く>Xcode.app」を選択すれば追加可能ですよ。
以上で完了!
※プロファイルの事はよくわからんですけど、特に何もすることなくうまくいきました。
プロファイル259となってます。
Xamarin.Forms PreviewのTips試してみた。
まだまだ初心者なので、見当ハズレだったらごめんなさい。
こういうふうに書き換えて、ViewModelLocatorを使わないようにしても、previewにデータは表示されますね。
xamarin最新バージョンでは、普通の書き方でデータまで表示できるようになったということなのかな?