我正在 jQuery Mobile 中构建一个 Web 应用程序,并且我已经在 IOS 和 Android 上对其进行了测试,没有遇到任何困难。 WebOS 有一些渲染问题,但没什么大问题。但当我在 Windows Phone 7 上测试该应用程序时,一切都崩溃了。
jQuery Mobile 厨房水槽演示工作正常 - 我认为这可能是我的 javascript 造成的,所以我将其全部删除。然而,这并没有解决问题。由于 WP7 没有错误控制台可言,因此很难诊断发生了什么。
这是: http://abolition.me/wp7.php
在 Chrome 和 WP7 中单击相同的链接后,我将 header 转储到我的 Zend 日志中,这就是我得到的内容:
wp7:
[REDIRECT_STATUS] => 200
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_ACCEPT_LANGUAGE] => en-us
[HTTP_REFERER] => http://mobile.kinitawp7.designitfor.us/mobile#/mobile/tasks?filter=Open
[HTTP_ACCEPT] => text/html, */*; q=0.01
[HTTP_UA_CPU] => x86
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; Microsoft; XDeviceEmulator)
[HTTP_HOST] => mobile.kinitawp7.designitfor.us
[HTTP_COOKIE] => <censored>
[HTTP_VIA] => <censored>
[HTTP_X_FORWARDED_FOR] => <censored>
[HTTP_CACHE_CONTROL] => max-age=259200
[HTTP_CONNECTION] => keep-alive
[PATH] => /usr/local/bin:/usr/bin:/bin
[SERVER_SIGNATURE] => <address>Apache/2.2.16 (Ubuntu) Server at mobile.kinitawp7.designitfor.us Port 80</address>
[SERVER_SOFTWARE] => Apache/2.2.16 (Ubuntu)
[SERVER_NAME] => mobile.kinitawp7.designitfor.us
[SERVER_ADDR] => 50.56.102.225
[SERVER_PORT] => 80
[REMOTE_ADDR] => 50.84.91.226
[DOCUMENT_ROOT] => /var/www/kinita_branch/mobile.uwn.me/Website
[SERVER_ADMIN] => [no address given]
[SCRIPT_FILENAME] => /var/www/kinita_branch/mobile.uwn.me/Website/index.php
[REMOTE_PORT] => 46576
[REDIRECT_URL] => /viewtask/84
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /viewtask/84
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1307642025
这是来自 Chrome 的:
[REDIRECT_STATUS] => 200
[HTTP_HOST] => mobile.kinitawp7.designitfor.us
[HTTP_REFERER] => http://mobile.kinitawp7.designitfor.us/mobile
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
[HTTP_ACCEPT] => text/html, */*; q=0.01
[HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.3
[HTTP_COOKIE] => <censored>
[HTTP_VIA] => <censored>
[HTTP_X_FORWARDED_FOR] => <censored>
[HTTP_CACHE_CONTROL] => max-age=259200
[HTTP_CONNECTION] => keep-alive
[PATH] => /usr/local/bin:/usr/bin:/bin
[SERVER_SIGNATURE] => <address>Apache/2.2.16 (Ubuntu) Server at mobile.kinitawp7.designitfor.us Port 80</address>
[SERVER_SOFTWARE] => Apache/2.2.16 (Ubuntu)
[SERVER_NAME] => mobile.kinitawp7.designitfor.us
[SERVER_ADDR] => 50.56.102.225
[SERVER_PORT] => 80
[REMOTE_ADDR] => 50.84.91.226
[DOCUMENT_ROOT] => /var/www/kinita_branch/mobile.uwn.me/Website
[SERVER_ADMIN] => [no address given]
[SCRIPT_FILENAME] => /var/www/kinita_branch/mobile.uwn.me/Website/index.php
[REMOTE_PORT] => 47085
[REDIRECT_URL] => /mobile/viewtask/84
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /mobile/viewtask/84
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1307642163
问题在于 WP7 在其请求中省略了/mobile。
有什么想法吗?你以前见过这样的事情吗?
应该注意的是,如果我直接访问网址(即 /mobile/viewtask/90
),它就可以工作。问题似乎涉及 jQM 进行导航的方式。
谢谢!
JQM 问题报告链接: https://github.com/jquery/jquery-mobile/issues/1796
编辑: 应该注意的是,我使用的是 Zend 框架。
最佳答案
针对 future 读者的更新:问题已在最近的版本中修复。 它不应该出现在 alpha4.1 之后的版本中
我认为你的网址应该是
http://mobile.kinitawp7.designitfor.us/mobile/#viewtask/93
而不是
http://mobile.kinitawp7.designitfor.us/mobile#/mobile/viewtask/93
您无需更改与 mod_rewrite 相关的任何内容,只需更改链接即可。
所以
<a href="/mobile/tasks?filter=Open">
将被替换为
<a href="tasks?filter=Open">
等等
关于Windows Phone 7 上的 JQuery Mobile 错误(使用 Zend),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267976/