我有一个相当简单的jQuery移动应用程序,作为web应用程序运行良好(在桌面/智能手机的浏览器中测试),但当使用phonegap将其移植到android时,我有一个主要问题。它在真实的手机和AVD中都存在。
应用中有一个表单,比如:
<div data-theme="a" data-role="dialog" id="a-form">
<div data-role="content">
<h3>...</h3>
<form action="http://a-live-site.com/a-form.php" method="post">
...
<div data-role="fieldcontain">
<button type="submit">Submit</button>
</div>
</form>
</div>
</div>
它的响应内容在浏览器中加载得很好(action
是一个相对链接),但在phonegap中,我只看到一个白屏,硬件后退按钮退出应用程序,而不是通常的历史后退。令人费解的是,请求居然被通过了。服务器端代码触发一封电子邮件,因此我知道服务器正在接收请求。我在phonegap.xml
文件中添加了适当的<access />
规则,但我不确定这是否足够。
编辑:表单是静态内容,所以,在phonegap中,它是由file://
加载的,不应该有跨域问题。
问题是由于结果中的data-role="dialog"
。使用page
修复它。它只是在phonegap中破裂,而phonegap的日志让它看起来像是别的东西。一个真正的PITA