javascript - 检查 node.js + cordova + ionic app 是否启用了 GPS,如果 GPS 被禁用,通知用户并引导他进入设置以打开 GPS

标签 javascript node.js cordova ionic-framework

我正在使用 node、angular、ionic 和 cordova 创建一个移动应用程序,它应该与 android 4.0.3 及更高版本兼容。如果用户禁用了 GPS,我希望应用程序弹出通知。通知还应该有取消和定向到 GPS 设置的选项,以便用户手动打开 GPS。

为此,我尝试使用 npm 插件,但没有一个对我有用。当我尝试它们时,只有闪屏出现,没有其他任何东西。

  • cordova.plugins.diagnostic
  • cordova-plugin-fastrde-checkgps
  • cordova-plugin-android-gpsdetect

这是我尝试使用 cordova.plugins.diagnostic 插件的代码。

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {

   if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
     cordova.plugins.Keyboard.disableScroll(true);
   }
   if (window.StatusBar) {
     StatusBar.styleDefault();
   }

   cordova.plugins.diagnostic.isGpsLocationEnabled(function(enabled){
     alert("GPS location is " + (enabled ? "enabled" : "disabled"));
   }, function(error){
     alert("error");
  });
})

我在这里做错了什么?我关注了this在我的代码中。有人可以告诉我如何完成这项工作吗?

最佳答案

问题解决了。 我已将以下部分代码添加到错误的位置。

cordova.plugins.diagnostic.isGpsLocationEnabled(function(enabled){
   alert("GPS location is " + (enabled ? "enabled" : "disabled"));
}, function(error){
   alert("error");
});

它不应该在 $ionicPlatform.ready 函数中调用,因为我猜在设备完全准备好之前没有定义插件。我把它放在我的一个 Controller 中,它起作用了。

关于javascript - 检查 node.js + cordova + ionic app 是否启用了 GPS,如果 GPS 被禁用,通知用户并引导他进入设置以打开 GPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215990/

相关文章:

node.js - 如何配置node-fetch以使用公司代理?

node.js - 我想将扩展名的文件上传到 aws s3,但它不会上传扩展名的文件

ios - 如何使用 phonegap 应用程序获取所选图像的 URL

javascript - 有没有办法在 OpenLayers 3 中禁用旋转?

javascript - 计算 0% 利息?

javascript - 一般从字符串类名在 Javascript 中创建对象

javascript - Bootstrap Navbar 在响应页面上中断

node.js - bluebirdjs promise 包裹在 for 循环中

javascript - 如何在适用于 IOS 的 meteor cordova 应用程序中使用谷歌地图

jquery - 将 Auth0 与 cordova jQuery 移动应用程序集成