Я создаю веб-приложение в jQuery Mobile и протестировал его на IOS и Android без проблем. В WebOS есть некоторые проблемы с рендерингом, но ничего серьезного. Но когда я тестировал приложение с Windows Phone 7, все сломалось.
Демонстрация кухонной мойки jQuery Mobile работает нормально - я подумал, что это может быть что-то с javascript на моем конце, поэтому я удалил все это. Однако это не решило проблему. Поскольку в WP7 нет консоли с сообщениями об ошибках, очень трудно диагностировать происходящее.
Вот оно:
http://abolition.me/wp7.php
Я сбросил заголовки в свой журнал Zend после перехода по той же ссылке в Chrome и WP7, и вот что я получил:
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.
Есть мысли? Вы видели что-нибудь подобное раньше?
Следует отметить, что если я посещаю URL-адреса напрямую (т. Е. /mobile/viewtask/90
), это работает. Кажется, проблема связана с тем, как jQM выполняет навигацию.
Спасибо!
Ссылка на отчет о проблеме JQM:
https://github.com/jquery/jquery-mobile/issues/1796
Edit:
Следует отметить, что я использую Zend Framework.