使用本地html和远程php的Android电话间隙登录


Android phonegap login using local html and remote php

我的手机里有一个HTML页面,要求输入用户名和密码。按下提交按钮后,它将使用我在服务器上上传的 PHP 文件检查数据库中的现有用户。

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

在php中,我看到了将其重定向到其他页面的代码,

标头("file:///android_asset/www/mainMenu.html");

我试图改变它,但它仍然不起作用。谁能帮忙?

PHP 标头函数无法重定向到存储在设备上的本地页面,因为本地设备上的页面未托管在 Web 服务器上,因此远程 Web 服务器无法使用 http://URL 对它们进行寻址。

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

编辑:您的空白.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的header()重定向到blank.html。

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

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

问候

我喜欢你只坚持使用本地html文件的建议。我也以同样的方式做。但是我必须使用本地html实现支付网关。因此,控件转到远程服务器(我无法通过ajax执行此操作,因为没有可用的API)。现在如何返回我的本地文件夹。一种解决方案是从服务器发送一个带有支付参数的页面,该页面又将通过javascript调用本地html文件。你能建议我更好的方法吗?