运行 加载页面前的进程

Run process before load page

我正在将 cordova 6 与 onsen-ui、jquery 和 javascript 一起使用。所以我正在尝试制作一个简单的登录站点,但我需要了解 gps 是否处于活动状态。我想知道我必须在哪里进行验证。现在我在 ons.ready() 事件上执行以下操作。

var options = {maximumAge: 0, timeout: 3000, enableHighAccuracy:true};
navigator.geolocation.getCurrentPosition(onGPSCheckSuccess, onGPSCheckError, options);

function onGPSCheckSuccess()
{
    console.log("Encontro el GPS Activado");
}

function onGPSCheckError()
{
    console.log("Error al chequear el GPS");
    gpsDetect.switchToLocationSettings(onSwitchToLocationSettingsSuccess,     onSwitchToLocationSettingsError);
}

function onSwitchToLocationSettingsSuccess() {
}

function onSwitchToLocationSettingsError(e) {
  console.log("Error al activar el GPS");
  alert("Error onSwitchToLocationSettingsError: "+e);
}

那么,是否有办法在我的主页加载之前执行此操作?

此致

实际上,您可以进行简单的页面重定向。您可以将该代码放在 .htm 文件中,您可以在页面之前调用该文件。成功后,您可以使用 localStorage 存储结果,然后重定向到您想要的页面,并从 localStorage.

检索结果

我认为最好的方法是使用以下代码:

document.addEventListener("init", function(event){
    if(event.target.id=='yourHomePageID') {
      var options = {maximumAge: 0, timeout: 3000, enableHighAccuracy:true};
      navigator.geolocation.getCurrentPosition(onGPSCheckSuccess, onGPSCheckError, options);
    }
},false);

通过使用主页的 init 函数,这实际上在 ons.ready() 之前运行了一点,正如@fran-dios 在这里所讨论的:

希望这对您有所帮助。这是我根据上述问题所做的,它解决了我的问题。