在加载页面之前运行进程

时间:2016-02-13 20:45:24

标签: javascript jquery cordova onsen-ui

我正在使用带有onsen-ui,jquery和javascript的cordova 6。所以我想创建一个简单的登录站点,但如果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);
}

那么,如果在我的主页面加载之前有办法做到这一点吗?

此致

2 个答案:

答案 0 :(得分:1)

实际上,您可以进行简单的页面重定向。您可以将该代码放在public class NoticeAdapter extends ArrayAdapter<NoticeEntity> { private Context context; public NoticeAdapter(Context context, int resourceId, ArrayList<NoticeEntity> items) { super(context, resourceId, items); this.context = context; } /* private view holder class */ private class ViewHolder { TextView heading; TextView content; TextView date; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; NoticeEntity entity = getItem(position); LayoutInflater mInflater = (LayoutInflater) context .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); if (convertView == null) { convertView = mInflater.inflate(R.layout.custom_notice, null); holder = new ViewHolder(); holder.heading = (TextView) convertView .findViewById(R.id.txtvw_notice_heading); holder.content = (TextView) convertView .findViewById(R.id.txtvw_notice_content); holder.date = (TextView) convertView .findViewById(R.id.txtvw_notice_date); convertView.setTag(holder); } else holder = (ViewHolder) convertView.getTag(); holder.heading.setText(entity.getNotice_heading()); holder.content.setText(entity.getNotice_content()); holder.date.setText(entity.getNotice_date()); return convertView; } } 文件中,然后在页面之前调用该文件。如果成功,则使用.htm存储结果,然后重定向到所需的页面,并从localStorage检索结果。

答案 1 :(得分:0)

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

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所讨论的那样:

Onsen 2.0 - Adding event listener to Ons-Switch with Javascript

希望这会有所帮助。这是基于上述问题我正在做的事情,它解决了我的问题。