2011-09-27 47 views
7

我想创建一个带有phonegap的android应用程序,第一页是登录页面,它向服务器查询用户身份验证,服务器返回json字符串:如果登录成功则返回true,否则返回false。我得到的回应,但我不能重定向到下一个HTML页面。我正在使用以下代码如何重定向到phonegap android应用程序中的本地html页面?

$('#loginForm').submit(function(){ 
    var uid = $('#login').val(); 
    var pwd = $('#password').val(); 

    $.getJSON('http://example.com/phonegap/login.php', 
     { userid: uid, password: pwd }, 
     function(json) { 
      $.each(json, function(k, v) { 
       if(v == "true" || v == true){ 
        super.loadUrl("file:///android_asset/www/page2.html"); 
       } else { 
        $('#loginError').html("Login failed, username and/or password don't match"); 
       } 
     }); 
    }); 
    return false; 
}); 

请让我知道,如何在成功登录后将用户重定向到page2.html?

回答

13

您可以使用window.location调用其他html页面,如果您的第二个html页面出现在www文件夹中,请不要提供完整路径(请删除您的原生路径)。 请查看以下代码。

$('#loginForm').submit(function(){ 
    var uid = $('#login').val(); 
    var pwd = $('#password').val(); 
    $.getJSON(' http://example.com/phonegap/login.php ', 
     { userid: uid, password: pwd }, 
     function(json) { 
      $.each(json, function(k, v) { 
       if(v == "true" || v == true){ 
        window.location="page2.html"; 
       } else { 
        $('#loginError').html("Login failed, username and/or password don't match"); 
       } 
     }); 
    }); 
    return false; 
});

+0

非常感谢,你解决了我的问题。自2-3天以来,我一直在努力解决这个问题。 – Arif

+0

已经做到了......再次感谢。 – Arif

+0

使用PhoneGap 1.5.0,jquery 1.7.1和jquery mobile 1.0.1会导致“JSCallback服务器关闭:停止回调”。错误(至少在我的情况下)在重定向后禁用脚本。使用jquery函数“$ .mobile.changePage('url');”一切正常。 – Redfox

0

从纯JavaScript的角度来看,
威尔window.location.href = 'something.html';不行?

+0

它的工作..谢谢 – Arif

+0

@ karnyj但webview正在改变......... –

0

karnyj是正确的,因为标记的解决方案是针对iOS的。使用window.location =“url”有时会在iOS中冻结应用程序(每次重新启动设备时都会发生)。

//这是要走的路 window.location.href ='something.html';

0

相对路径应该没问题。

我发现window.location = './yourPage.html'(和
window.location.href = './yourPage.html')并不总是工作,
和使用已经成功: window.location.replace('./yourPage.html');

0

window.location.replace( 'xyz.html') ; 始终工作!

相关问题