页面哈希和backbutton问题phonegap + Jquery [英] page hash and backbutton issue phonegap+Jquery

查看:92
本文介绍了页面哈希和backbutton问题phonegap + Jquery的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是phonegap编程的新手,希望有人能在这里帮助我:

I am new to phonegap programming and hoping someone can help me out here:

cordova 1.7.0,使用Jquery 1.7.2和JQM 1.1.0。该应用正在Android上测试。

cordova 1.7.0, Jquery 1.7.2 and JQM 1.1.0 are used. The app is being tested on Android.

我正在尝试为应用启动网页。

I am trying to make a launching page for the app.

<body>    
    <div data-role="page" id="page_loading">
        <div data-role="content">
            <h1 >
                <b>welcome</b>
            </h1>
        </div>
    </div>

    <div data-role="page" id="page_1">
    </div>

    <div data-role="page" id="page_2">
    </div>    
</body>

我放置一个 $。mobile.changePage($('page_1') ,{changeHash:false}); onDeviceReady()函数末尾的当应用程序启动时,它立即显示加载页面,加载完成后,它移动到第一页。

I put an $.mobile.changePage($('page_1'), { changeHash: false}); at the end of onDeviceReady() function. When the app starts, it immediately showed the loading page, after the loading finished, it moves on to the first page.

在第一页上,当我按下PAGE_1上的backbutton时,它将退出应用程序。这是我想要的。

On the first page, when I press backbutton on page_1, it will exit the app. This is what I want.

然后我再次使用mobile.changePage去第2页。如果我仍然使用 changeHash:false ,backbutton将再次退出应用程序。如果我使用 changeHash:true ,则返回到page_1,而不是返回到加载页面。

Then I used the mobile.changePage again to go to page 2. If I still use changeHash: false, backbutton will again exit the app. If I use changeHash: true, backbutton doesn't go back to page_1, but it goes to the loading page.

如果在从加载到page1的转换中使用 changeHash:true ,那么page2上的backbutton将调出第一页,但是在第一页上,

If I use changeHash: true on the transition from loading to page1, then the backbutton on page2 will brings up the first page, but on the first page it will brings up the loading page rather then exit the app.

我的问题是:我如何让退回按钮回到第2页,第3页等的历史记录中,但退出应用程序第1页?

My question is: How can I make the backbutton go back in history on page2, page3 and so on, but exit the app on page1?

我的猜测是我不得不重建/清除哈希。任何人都可以告诉我如何?感谢

My guess is I have to rebuild/clear the hash somehow. Can anyone show me how? thanks

推荐答案

我有同样的问题,并使用解决方法:

I had the same problem and used a workaround:

页面布局:

<body>    
    <!-- page_1 before page_loading in source -->
    <div data-role="page" id="page_1">
    </div>
    <!-- page_loading will be shown first -->
    <div data-role="page" id="page_loading">
        <div data-role="content">
            <h1 >
                <b>welcome</b>
            </h1>
        </div>
    </div>
    <div data-role="page" id="page_2">
    </div>    
</body>

jQuery:

function onBodyLoad()
{   
    //go to page_loading before deviceready without keeping it in browser history
    $.mobile.changePage('#page_loading', {reverse: false, changeHash: false});
    document.addEventListener("deviceready", onDeviceReady, false);
}

function onDeviceReady()
{   
    //your initialization code here...

    //now go to page_1 without keeping it in browser history since the actual first page was #page_1 already       
    $.mobile.changePage('#page_1', {reverse: false, changeHash: false});

    //your code here...
}

这应该适合你的需要,只是试试...

This should fit your needs, just try it out...

这篇关于页面哈希和backbutton问题phonegap + Jquery的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆