如何从javascript(GPS)显示jQuery移动对话

时间:2013-12-07 23:55:33

标签: javascript android jquery jquery-mobile cordova

我正在使用JQM和PhoneGap开发应用程序。开始时,应用程序会检查GPS是否已启用。如果没有,它应该打开一个JQM对话框。

JavaScript的标准对话框有效,但我想要JQM对话框,但它不起作用。

这是我的代码:

<!-- PhoneGap 2.9.1  -->
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>

来自PhoneGap文档: 我在最后插入一行:$ .mobile.changePage('#dialogGPS',{transition:'pop',role:'dialog'});

<div data-role="page" id="home">

    <div data-role="header">
        <h1>Test</h1>
    </div>

    <div data-role="content">
        Hello
    </div>

    <script type="text/javascript">
    $('#home').on("pageshow", function() {  
        // Wait for device API libraries to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // device APIs are available
        //
        function onDeviceReady() {
            navigator.geolocation.getCurrentPosition(onSuccess, onError);
        }

        // onSuccess Geolocation
        //
        function onSuccess(position) {
            var element = document.getElementById('geolocation');
            element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                                'Longitude: '          + position.coords.longitude             + '<br />' +
                                'Altitude: '           + position.coords.altitude              + '<br />' +
                                'Accuracy: '           + position.coords.accuracy              + '<br />' +
                                'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                                'Heading: '            + position.coords.heading               + '<br />' +
                                'Speed: '              + position.coords.speed                 + '<br />' +
                                'Timestamp: '          + position.timestamp                    + '<br />';
        }

        // onError Callback receives a PositionError object
        //
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');

            $.mobile.changePage('#dialogGPS', { transition: 'pop', role: 'dialog' });
        }
    });
    </script>

</div>

dialogGPS角色:

<div data-role="dialogGPS">
        <div data-role="header" data-theme="d">
            <h1>Dialog</h1>
        </div>
        <div data-role="content" data-theme="c">
            <p>Content goes here.</p>
            <a href="#home" data-role="button" data-rel="back" data-theme="b">OK</a> 
            <a href="#home" data-role="button" data-rel="back" data-theme="c">Cancel</a>
        </div>
    </div>

1 个答案:

答案 0 :(得分:1)

我认为你的对话标记是错误的。而不是:

<div data-role="dialogGPS">

<div id="dialogGPS" data-role="page">
  

这是 DEMO FIDDLE