我正在尝试编写一个Cordova插件,让Facebook聊天头像浮动图标,用于需要SYSTEM_ALERT_WINDOW权限的离子混合应用程序。在Android Cordova插件的请求权限不会提示用户
由于Android M向前版本要求用户在应用程序第一次启动时授予权限,因此我试图使用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");
}
}
在第一次启动时,应用程序不会提示权限请求活动,而是日志打印“权限被拒绝”。
我是Ionic和Cordova的新手,在花费数小时后仍然无法工作。任何帮助将不胜感激。
在此先感谢。
我知道这是不相关的问题,但你打算在任何一个机会让你的项目开源? –