用于位置许可警报的 Hybrid Cordova App 回调

Posted

技术标签:

【中文标题】用于位置许可警报的 Hybrid Cordova App 回调【英文标题】:Hybrid Cordova App callback for location permission alert 【发布时间】:2018-10-03 03:46:24 【问题描述】:

我有一个 cordova 混合应用程序,它使用 location 权限。所以无论如何在javascript 中是否有检测在allowcancel 弹出警报时执行的操作。 类似于在 android 中我们有回调 onRequestPermissionsResult

我正在使用Geolocation API 获取位置navigator.geolocation

navigator.geolocation.getCurrentPosition((position)=> 
    console.log(position);
);

【问题讨论】:

【参考方案1】:

您可以使用cordova-diagnostic-plugin 请求位置权限:

配置它:

config.xml:<preference name="cordova.plugins.diagnostic.modules" value="LOCATION" />

安装它:

$ cordova plugin add cordova.plugins.diagnostic

使用requestLocationAuthorization():

cordova.plugins.diagnostic.requestLocationAuthorization(function(status)
    switch(status)
        case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
            console.log("Permission not requested");
            break;
        case cordova.plugins.diagnostic.permissionStatus.GRANTED:
            console.log("Permission granted");
            break;
        case cordova.plugins.diagnostic.permissionStatus.DENIED:
            console.log("Permission denied");
            break;
        case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
            console.log("Permission permanently denied");
            break;
    
, function(error)
    console.error(error);
);

【讨论】:

对不起,但不想使用这个插件我们有任何其他方法会像navigator.permissions.query(name:'geolocation')一样回电。

以上是关于用于位置许可警报的 Hybrid Cordova App 回调的主要内容,如果未能解决你的问题,请参考以下文章

iPhone上的位置许可警报与PhoneGap

使用Hbuilder开发IOS应用上架审核提示请指定用户在位置许可模式警报中使用位置的预定用途。

如何在没有警报消息(iOS)的情况下在 webview 中获得地理定位许可?

Eclipse 无法为 Hybrid Cordova 应用程序选择 Hybrid Mobile Engine?

如何在 Cordova 或 Hybrid 项目中获取用户身份?

如何在 HealthKit 中获得使用 Cordova 编写锻炼路线的许可