2

我正在为我的私人 phonegap 项目工作。我想启动应用程序,然后调用一个外部网站,里面塞满了 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;
            }

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

4

1 回答 1

0

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

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

 function onDeviceReady() {
                devReady = true;
                callExtPage();
 }
</script> 
于 2013-04-12T18:38:00.507 回答