如何显示在Mozilla OS App中启用GPS的警报

时间:2014-12-10 08:20:30

标签: firefox gps mozilla

如果手机的GPS已关闭,那么将会出现提示或祝酒或警告任何显示的内容

Please Enable your geolocation First.

我使用类似的东西

if ("geolocation" in navigator) {
  /* geolocation is available */
} else {
  /* geolocation IS NOT available */
}

但这只检查浏览器是否支持GPS?

我该怎么做?有什么建议 ?

1 个答案:

答案 0 :(得分:2)

澄清问题:

以下是我从您的问题中理解的用户流程:

用户想要使用需要GPS的Mozilla OS应用程序的某些部分 该应用程序应检查GPS是否打开 如果GPS已关闭,则提示用户打开GPS。

代码

(基于Geolocation docs的代码)

// geolocation is available  
if ("geolocation" in navigator) {

  // get position
  navigator.geolocation.getCurrentPosition(function(position) {
    do_something(position.coords.latitude, position.coords.longitude);
  });

// geolocation IS NOT available
} else {
  // notify the user to turn their GPS on
  new Notification("Please enable your GPS"); 

  /*Disable whatever feature you were planning on using until user comes back
   with the GPS turned on and this logic runs again.*/
}

说明

在Mozilla操作系统中,开发人员无法直接访问GPS。以下是让我得出这个结论的研究:

Geolocation页面上没有提及之后,我在标题为“内部(已认证)应用权限”的部分中查看了底部附近的"App permissions page"。可以访问蓝牙,相机和WiFi,但不能访问GPS。然后我开始查看内部(认证)settings页面,在那里我找到了一些额外的硬件,但没有任何关于GPS的信息。

您已在Geolocation documentation page 上找到解决方法,检查Geolocation服务是否会返回某个位置。如果是undefined,则GPS未开启。哈基,但这就是我们所拥有的。

如果GPS已关闭,您需要提醒用户,要求将其打开。根据{{​​3}},在应用开发中,您可以通过这种方式通知用户而无需请求权限(“允许所有已安装的应用类型”) App permission picture

在浏览器中,您必须先要求使用"App permissions page"显示通知。

上面给出的解决方案代码适用于Notification.requestPermission();如果您的应用使用的是早期版本,请使用mozNotification

摘要(Anik的具体问题)

  

但这只检查浏览器是否支持GPS?

相同的Geolocation服务用于浏览器 Mozilla OS应用程序。 Firefox OS 1.2+ (or Gecko 22+) App PermissionWeb API Interfaces Geolocation API page地理位置链接证明了这一点,即“这允许网站或应用根据用户的位置提供自定义结果。”无论设备类型如何,"For privacy reasons, the user is asked for permission to report location information."

  

我该怎么做?有什么建议吗?

请参阅上面的代码,并按照许多链接查找有关如何使用地理定位服务和创建用户通知的来源。