Intereting Posts
Как показать текущее местоположение как стрелку в Google Maps Android API V2? Сомнения в bindService Как отменить службу переднего плана от использования уведомления (удалите салфетки) или удалить все уведомления? В вашем контенте должен быть ListView с атрибутом id 'android.R.id.list' Почему информационное окно маркера не отображается? Eclipse не может подключиться к диспетчеру активности на эмуляторе – HelloWorld не появляется Почему Fragment не сохраняет состояние при вращении экрана? Дешевый / быстрый способ хеш-битмапов? Принуждение Renderscript для работы на процессоре или графическом процессоре (Atleast для настройки производительности) Цикл с файлом анимации XML? Попытка нарисовать кнопку: как установить цвет штриха и как «выровнять» градиент на дне, не зная высоты? Подключить / Подключить Bluetooth-гарнитуру и Android Несколько удаленных экземпляров веб-просмотра, которые видны в устройствах Chrome при открытии и закрытии приложения android cordova Как управлять настраиваемыми адаптерами onPause, onResume of Activity на Android Задача и процесс Android, SingleTask и SingleInstance

CORS + Android Webview, не работает на устройстве (но работает на эмуляторе)

У меня есть работающая телефонная программа HelloWorld с jquery mobile, которая посыпается, как описано здесь: http://jquerymobile.com/demos/1.1.0/docs/about/getting-started.html . Я добавил немного javascript, чтобы экспериментировать с Cross Origin Resource Sharing:

<script> $(document).bind("pageinit", function() { $.support.cors = true; $.mobile.allowCrossDomainPages = true; $.mobile.changePage("http://jquery.com"); }); </script> 

Это отлично работает на эмуляторе (2.3), jquery.com загружается поверх демонстрации jquery mobile. Однако на реальных 2.3 Android-устройствах (T-mobile G2 работает Cyanogen, Galaxy SII, Galaxy Player) вызов changePage () ничего не делает.

Попробуйте использовать mobileinit вместо pageinit . Поскольку событие, к которому вы привязаны, является обычным jQuery, а для jQuery mobile событие инициализации – mobileinit.

The $.mobile.allowCrossDomainPages option must be set before any cross-domain request is made so we recommend wrapping this in a mobileinit handler .

Вызов функции $.mobile.changePage() функции pageinit звучит как плохая идея, потому что это должно вызвать бесконечный цикл. Функция $.mobile.changePage() инициализирует страницу, указанную в качестве target параметра, поэтому каждый раз, когда вы вызываете $.mobile.changePage() вы также pageinit событие pageinit .

Вероятно, вы хотите связать с событием mobileinit чтобы перезаписать переменную $.support.cors перед инициализацией jQuery Mobile:

 <script src="jquery.js"></script> <script> $(document).bind("mobileinit", function() { $.support.cors = true; $.mobile.allowCrossDomainPages = true; $.mobile.changePage("http://jquery.com"); }); </script> <script src="jquery-mobile.js"></script> 

Связанная документация: