我正在调用下面的函数:
this.androidPermissions.requestPermission("ACCESS_FINE_LOCATION")
.then((data: any) {
if(data.hasPermission) {
console.log("have permission");
}
});
但是我没有收到权限弹出窗口。我已经尝试过使用捕获块,但没有看到任何错误。
更新1:我已经尝试了这个答案,但我仍然没有得到权限弹出窗口。 https://stackoverflow.com/a/47650104/758373
所以我认为这可能是由两件事引起的。
第一个是:你如何在代码中使用权限。
Android 26及更高版本:由于 Android 26 对权限处理的更改(权限是在使用时而不是运行时请求的(,如果您的应用不包含任何使用特定权限的功能(例如其他 Ionic Native 插件(,则 requestPermission(( 和 requestPermissions(( 将立即解决,而不会向用户显示提示。因此,在请求权限之前,您必须包含一个利用要使用的功能的功能。
据我了解,这不会在你的catch
陈述中被抓住,因为什么都没有被抓住,没有错误。不过,它可能在您的then
陈述中被捕获,但也可能不是。尝试编写语句以查看data: any
是否为 null。有些插件在取消时会发送回调,有些则不会。这一切都取决于开发商的决定。
另外,我相信您错误地请求许可。
更改此内容
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");
}
});