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となってます。