phonegap应该只在准备好时调用外部网站

时间:2013-04-12 16:37:38

标签: cordova jquery-mobile

我正在使用我的私人手机差距项目。我想启动应用程序,然后调用一个外部网站,里面塞满了jquerymobile的东西。应用程序中的第一个脚本是一个脚本,应该等到设备就绪并联机。然后调用外部链接。但它不起作用。不幸的是我不明白为什么不...这里是(只有被称为js脚本): (在我加载jquery和jquerymobile的网站上,没有问题)。

            var lat = "";
            var lng = "";
            var dat = "";
             devReady = false;
             devOnline = false;

            $(function(){
              document.addEventListener("deviceready", onDeviceReady, false);
              document.addEventListener("online", onOnline, false);
            })

            function onDeviceReady() {
                devReady = true;
                callExtPage();
            }

            function onOnline() {
                devOnline = true;
                callExtPage();
                }

            function callExtPage() {
                // calls the external Page when device is ready (parameters set) and online
                if(devOnline == true && devReady == true) {
                    navigator.geolocation.getCurrentPosition(function() {
                        lat = position.coords.latitude;
                        lng = position.coords.longitude;
                        dat = currentDate();
                    }, false);
                    // load an external page ($.mobile.changePage does only call as ajax)
                    window.location.href="http://www.mydomain.com/mobiles?lat="+lat+"&lng="+lng+"&dat="+dat;
                }
            }
            function currentDate() {
                var d = new Date();
                var curr_date = d.getDate();
                var curr_month = d.getMonth() + 1; //Months are zero based
                var curr_year = d.getFullYear();
                if(curr_date < 10) {curr_date = "0"+curr_date}
                if(curr_month < 10) {curr_month = "0"+curr_month}
                var currDate = curr_year+"-"+curr_month+"-"+curr_date;
                return currDate;
            }

感谢您提供任何帮助或捷径。

1 个答案:

答案 0 :(得分:0)

将调用移至deviceready行作为yours部分中的第一个语句。您的当前代码,deviceready事件连接根本不会被调用。

<script>
 document.addEventListener("deviceready", onDeviceReady, false);

 function onDeviceReady() {
                devReady = true;
                callExtPage();
 }
</script>