Ошибка загрузки страницы при нажатии на метку привязки в приложении Android PhoneGap в сэндвич мороженого - PullRequest
1 голос
/ 13 января 2012

Я занимаюсь разработкой приложения android phonegap , используя phonegap 1.3 и jquery mobile 1.0 Мое приложение прекрасно работает во всех версиях Android до 4.0.0
Но в 4.0.0 и выше я столкнулся с проблемой.У меня есть якорь, который, когда пользователи нажимают, переносит на другую «страницу».

<div class="ui-input-share  ui-btn-corner-all ui-body-c" id="mk_home">
    <a href="javascript:void(0);" class="ui-input-text"  data-role="none"  >Whats up?</a>
</div>

В эмуляторе с Android 4.0.3, когда я нажимаю на это, я получаю сообщение об ошибке «Ошибка загрузки страницы» Когда я проверяю журналы в logcat,Я вижу сообщение об ошибке

Unknown chromium error: -6

Любая идея о том, что я могу сделать, чтобы заставить его работать?

Ответы [ 4 ]

4 голосов
/ 13 января 2012

Поскольку вы используете jQuery, я бы порекомендовал использовать jQuery для подключения ваших событий. С этим сказано, используя e.preventDefault(); и e.stopImmediatePropagation(); должен остановить jQuery mobile от выполнения действия по умолчанию для.

$("#verify").click(function (e) {
    e.stopImmediatePropagation();
    e.preventDefault();
    //Do important stuff....
});

Обновление

Лучшим способом использования существующей разметки было бы просто добавить rel = "external" к вашему И ваш клик должен вести себя правильно.

<p>
  <a href="index.html" data-role="button" data-icon="arrow-r" data-iconpos="right" data-theme="a" onclick="doSomething(); return false" rel="external">VERIFY</a>
</p>

Это будет работать, так как jQuery Mobile будет обрабатывать ссылку как обычный тег и возвращать false просто остановит действие по умолчанию.

2 голосов
/ 17 мая 2012

Эта ошибка возникла, потому что webkit в ics не работает при обработке

?param=abc

с URL. Так что, если у вас есть URL-адрес, как

domain.com?p1=a

который вы нажмете, тогда вы получите такую ​​ошибку. Лучшим решением на данный момент было бы протестировать ваше веб-приложение в браузере и посмотреть, когда и где вы добавите параметры в URL и удалите их.

Вы можете сохранить эти параметры в локальном хранилище и получить их при необходимости.

2 голосов
/ 10 марта 2012

В jQuery Mobile, когда вы хотите использовать <a href=...> </a>, вам лучше использовать rel = "external" в <a>, чтобы правильно перейти на целевую страницу.Если вы хотите использовать JavaScript, лучше не использовать его в <a href='...'>, поскольку href - это распределение хешей, а не атрибут кода JavaScript.

jQuery Mobile не поддерживает привязку.Если вам нужно использовать якорь, вы должны сделать компромисс.Вы можете сослаться на эту ссылку, jQuery Mobile Anchor Linking

1 голос
/ 29 июня 2012

Иногда сам jquery добавляет эти URL-параметры в запросы ajax.Это тот случай, когда вы активировали кеширование.Вы можете легко отключить эту функцию для всего проекта, используя:

$.ajaxSetup({ cache: true });

Надеюсь, это кому-нибудь поможет.

...