Я пытаюсь написать плагин Cordova, чтобы иметь чат-чат Facebook, как плавающий значок для ионных гибридных приложений, для которого требуется SYSTEM_ALERT_WINDOW Permission.Запрос разрешения в Android-плагине Cordova не запрашивает пользователя
Поскольку Android M onward требует, чтобы пользователь предоставил разрешение при первом запуске приложения, я пытаюсь использовать метод плагина Cordova cordova.requestPermission(CordovaPlugin plugin, int requestCode, String permission)
, чтобы предложить пользователю предоставить разрешение (как в documentation).
public class Floatie extends CordovaPlugin {
public static final String ACTION_START_FLOATIE = "startFloatie";
public static final int REQUEST_CODE = 0;
public static final String DRAW_OVER_OTHER_APPS = Manifest.permission.SYSTEM_ALERT_WINDOW;
private CallbackContext callbackContext;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals(ACTION_START_FLOATIE)) {
String message = args.getString(0);
this.callbackContext = callbackContext;
if(cordova.hasPermission(DRAW_OVER_OTHER_APPS)) {
Log.i("Floatie", "Has Permission");
}
else
{
getPermission(REQUEST_CODE);
}
return true;
}
return false;
}
protected void getPermission(int requestCode)
{
cordova.requestPermission(this, requestCode, DRAW_OVER_OTHER_APPS);
}
public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) throws JSONException
{
for(int r:grantResults)
{
if(r == PackageManager.PERMISSION_DENIED)
{
Log.i("Floatie", "Permission Denied");
return;
}
}
Log.i("Floatie", "Permission Granted");
}
}
При первом запуске приложение не запрашивает активность запроса на запрос, и вместо этого журнал печатает «Разрешение отклонено».
Я новичок в Ионном и Кордове и до сих пор не мог справиться с этим, потратив часы на это. Любая помощь будет высоко оценена.
Заранее спасибо.
Я знаю, что это не имеет отношения к вашему вопросу, но вы планируете при создании вашего проекта с открытым исходным кодом? –