Android 8 подключается к разрешению всплывающего окна разрешить / запретить событие при запуске ионного приложения - PullRequest
0 голосов
/ 15 октября 2018

Когда наше приложение ionic 1.x запускается на Android 8 (targetSdkVersion: 26, устройство Samsung S8), оно отображает всплывающее окно с разрешениями

Разрешить приложению доступ к фотографиям, мультимедиа и файлам на вашемустройство?Запретить разрешить

Всплывающее окно отображается перед выполнением любого кода нашего приложения, поэтому мы подозреваем, что это связано с разрешениями, указанными в файле AndroidManifest.xml.

Мы также используем отпечатокплагин входа в систему, и когда всплывающее окно с разрешением и входом по отпечатку пальца перекрываются, вход по отпечатку пальца перестает работать (приглашение остается открытым, пользователь не входит в систему)

В приложении Ionic 1.x есть способ подключиться ксобытие разрешено / запрещено, так что мы можем отложить отпечаток пальца до тех пор, пока пользователь не разрешит / не запретит разрешения?

Или есть другие идеи о том, как обойти эту проблему?

Спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Описываемое вами всплывающее окно - это встроенный диалог разрешений для среды выполнения Android, который отображается, когда во время выполнения делается запрос на разрешение.Это диалоговое окно не отображается автоматически из-за присутствия элемента <uses-permission> в манифесте (хотя соответствующая запись манифеста должна присутствовать для запроса разрешения во время выполнения).Таким образом, это диалоговое окно отображается потому, что плагин (я не могу точно сказать, какой именно, потому что вы не указали свои плагины в явном виде) в вашем проекте делает запрос времени выполнения для этого разрешения при запуске приложения (что не является хорошей практикой).

Поскольку диалог является нативным, вы не сможете «зацепиться за него», не изменив собственный плагин, который выполняет запрос во время выполнения.Я бы посоветовал разложить этот плагин и закомментировать исходный запрос на разрешение, который делается при запуске в вашей раздвоенной версии плагина.

Затем вы можете либо выставить этот запрос на разрешение в своем разветвленном плагине как метод API плагина (если вы знаете, как создавать плагины Cordova), или вы можете использовать сторонний плагин, такой как cordova-Diagnostic-Plugin или Cordova-Plugin-android-permissions , чтобы запросить соответствующее разрешение наво время выполнения.Это позволит вам запрашивать разрешение (т.е. показывать диалоговое окно) только тогда, когда вы будете готовы сделать это.

...