Как я могу использовать allowplugin с zxing nuget pkg в приложении xamarin.forms? - PullRequest
0 голосов
/ 23 мая 2019

OnRequestPermissionsResult, упомянутый в ppg allowplugin"jamesmontemagno"

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }

OnRequestPermissionsResult, упомянутый в Zxing pkg

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
            {

                global::ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            }

Я пытаюсь добиться этого, используя следующий код:

[Activity(Label = "BarcodeScanning", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Portrait | ScreenOrientation.Landscape)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);
            Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);

            ZXing.Net.Mobile.Forms.Android.Platform.Init();

            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }


        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
        {
            global::ZXing.Net.Mobile.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);

        }       
    }

Я хочу использовать оба пакета Nuget и показать пользователям, чтобы они отображали всплывающее окно для разрешения местоположения.Пожалуйста, дайте мне ваши ценные предложения.

1 Ответ

0 голосов
/ 23 мая 2019

Запрос разрешений является требованием операционной системы и не имеет ничего общего с ZXing или какой-либо библиотекой в ​​целом.

Теперь, если вы проверите PermissionsPlugin's Github, вы найдете все свои ответы там

Текущая активность * Плагин 1008 * необходим для корректной работы этого пакета. Также всегда добавляйте необходимые разрешения в info.plist для iOS.

Тогда вы спрашиваете разрешения примерно так:

var status = await CrossPermissions.Current.CheckPermissionStatusAsync<LocationPermission>();

Вы можете проверить доступные API здесь , а простой пример можно найти здесь

...