2012-04-11 19 views
1

我的手机里有一个HTML页面,它要求输入用户名和密码。当提交按钮被按下时,它将使用我上传到服务器上的PHP文件来检查数据库中的现有用户。使用本地html和远程php的Android phonegap登录

问题是,在登录成功之后,我如何从PHP文件重定向到我的主菜单页面,这是我手机中的HTML文件?

在PHP中,我看到这个代码,将其重定向到其他页面,

标题( “文件:///android_asset/www/mainMenu.html”);

我试图改变它,但它仍然无法正常工作。谁能帮忙?

+0

我认为它应该是标题(“位置:file://android_asset/www/mainMenu.html”); – 2012-04-11 17:56:30

+0

我的不好,忘了关于位置..但仍然没有工作..它给了我500错误的东西.. – 2012-04-11 18:06:42

回答

2

由于本地设备上的页面没有托管在Web服务器上,因此PHP头文件功能无法重定向到设备上存储的本地页面,因此远程Web服务器无法使用http:/URL。

你可以做的是让PHP返回一个空白页面,其中包含一段JavaScript代码,该页面使用窗口将移动浏览器重定向到本地HTML文件(file:///android_asset/your_file.html) .location.href或window.location.replace。这是可行的,因为JavaScript在设备上执行,因此知道本地文件系统上的文件。

编辑:你blank.html需要看起来像这样:

<html> 
<head> 
    <script type="text/javascript"> 
     window.location.href = 'file:///android_asset/my_local_page.html'; 
    </script> 
</head> 
<body> 
</body> 
</html> 

在上面的文字,用你的主菜单页面替换my_local_page.html。然后将blank.html放在您的服务器上,并使用PHP的标题()重定向到blank.html。

+0

谢谢先生..将尽力.. – 2012-04-12 14:26:52

+0

谢谢先生..至少我知道有一个解决方案。 可以分享示例代码到这..我有点新.. 所以,我的理解,在我的PHP文件托管在服务器中检查登录,我需要把这个,标题(“位置:空白。 PHP“),并在blank.php里我必须把这个代码? “window.location的。href =“file:///android_asset/www/mainMenu.html”“ – 2012-04-12 14:29:22

+0

看到我上面编辑过的帖子。 – Theo 2012-04-12 18:19:27

1

使用phonegapp框架(或其他mobil的webapp框架)构建html5 + javascript应用程序时,我不喜欢混合本地和远程html页面。显示的页面可以完全本地或远程,但不能混合使用。当我选择使用完全本地显示但需要调用远程服务时,我使用ajax请求。

我建议你也这样做。所以,请使用ajax调用您的php登录方法,然后在成功时更改您的phonegapp页面。例如你的PHP脚本可以返回一个简单的字符串,它可以是'成功'或'失败'。然后,您可以在phonegap应用程序中执行必要的页面更改。

Regards

0

我喜欢你的建议,坚持只有本地html文件。我也是这样做的。但我必须使用本地html实现支付网关。所以控制权转到远程服务器上(我不能通过ajax来完成,因为没有可用的API)。现在我该如何回到我的本地文件夹。一种解决方案是使用支付参数从服务器发送一个页面,而这些参数又将通过javascript调用本地html文件。你能建议我有更好的方法来做到这一点吗?