我正在调用以下函数:
this.androidPermissions.requestPermission("ACCESS_FINE_LOCATION")
.then((data: any) {
if(data.hasPermission) {
console.log("have permission");
}
});
但是我没有看到权限弹出窗口。我已经尝试过catch块,但没有看到任何错误。
更新1: 我已经尝试过这个答案,但是我仍然没有得到权限弹出窗口。 https://stackoverflow.com/a/47650104/758373
答案 0 :(得分:1)
所以我认为这可能是由两件事引起的。
第一个是:您如何在代码中利用权限。
Android 26及更高版本:由于Android 26更改了权限处理(在使用时(而不是在运行时)请求权限),如果您的应用程序不包含任何利用特定功能的功能(例如其他Ionic Native插件)权限,然后requestPermission()和requestPermissions()将立即解决,而不会向用户显示提示。因此,您必须包括一个利用您要使用的功能的功能,然后才能请求其权限。
据我了解,您的catch
语句中不会出现此错误,因为没有发现任何错误,因此没有错误。虽然它可能会在您的then
语句中捕获,但也可能不是。尝试编写一条语句以查看data: any
是否为空。有些插件在取消后会发送回调,而有些插件则不会。这完全取决于开发人员的意愿。
此外,我认为您在错误地请求许可。
更改此
this.androidPermissions.requestPermission("ACCESS_FINE_LOCATION")
.then((data: any) {
if(data.hasPermission) {
console.log("have permission");
}
});
对此:
this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then((data:any) => {
if(data.hasPermission) {
console.log("have permission");
}
});