andoridデバイスでZamingコードスキャナをxamarin形式で使用しようとしています。 は、Zxingスキャナページを開くためのボタンを作成しました。Xamarin.Formsを使用してAndroidデバイスのZxingバーコードスキャナ
しかし、私はこのように憤慨しています。
のSystem.InvalidOperationException:PushAsyncはないアンドロイドでグローバルにサポートされている、NavigationPageを使用してください、私はこのエラーを取得する方法を同期させるために、それを移動する場合が
:それは私にunhandel exceptoinを送信します。
private void goToScan()
{
var scanPage = new ZXingScannerPage();
scanPage.OnScanResult += (result) => {
// Stop scanning
scanPage.IsScanning = false;
// Pop the page and show the result
Device.BeginInvokeOnMainThread(() => {
Navigation.PopAsync();
DisplayAlert("Scanned Barcode", result.Text, "OK");
});
};
// Navigate to our scanner page
Navigation.PushAsync(scanPage);
}
}
を、私はこのようPushModalAsyncに非同期(async)Navagation.pushを変更した場合::
私のコードを取り付ける Navigation.PushModalAsync(scanPageを)。
私はZxingスキャナページに移動しますが、スキャンは開始されません。 (crusiorイベントは移動しない
私の主なAndorid活動は次のようになります。
[Activity(Label = "QRCode4", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
ZXing.Net.Mobile.Forms.Android.Platform.Init();
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
global::ZXing.Net.Mobile.Forms.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
appericate
任意の助けのおかげ
私の解決した問題でした! o Xamarinフォームのページについて詳しく読む。 –