Ответ 1
Мне удалось решить проблему, установив библиотеку fastclick. FastClick
Последняя версия iOS (8.4.1), похоже, сломала наше приложение ngCordova.
Наши ссылки, как правило, не открываются, независимо от того, были ли они доступны напрямую href, ng-click или ng-href. Некоторые будут открываться после повторного нажатия, и у hrefs есть всплывающее меню, которое позволяет нам выбирать "открыть", "скопировать" или "отменить", если мы нажмем и удержим их на некоторое время.
Проблема не различает кнопку или тег. Некоторые теги, похоже, работают нормально.
Мы были на более старых версиях кордовы и ngcordova, но обновление их не фиксировало этого.
Я также попытался отключить выбор пользователя, но это не исправило его.
Эта проблема возникает только на устройстве, а не в эмуляторе.
Мы используем директиву angular -mobile-ui toggleable для sidemenu, а событие переключения запускается при нажатии ссылок в sidemenu, но ссылка не перенаправляется.
Мне удалось решить проблему, установив библиотеку fastclick. FastClick
Другой способ - установить свойство css как это (он работает для меня):
button:active { opacity: 1 !important; }
Что-то довольно глупое, что я не мог понять, но я думаю, что это связано с Apple в: https://support.apple.com/en-us/HT205030
"Влияние: вредоносный веб-сайт может сделать событие крана, производящего синтетический щелкните на другой странице Описание: Проблема в том, как синтетические клики генерируются из событий крана, которые могут вызвать клики другие страницы. Проблема была решена с помощью ограниченного щелчка Распространение".
Итак, я полагаю, если кнопка в активном состоянии установлена на нижнюю непрозрачность, чем 1, Apple должна учитывать, что это синтетический щелчок.
У меня такая же проблема. См. Сводный журнал безопасности от Apple здесь https://support.apple.com/en-us/HT205030
Влияние: вредоносный веб-сайт может сделать событие крана, производящего синтетический щелкните на другой странице Описание: Проблема в том, как синтетические клики генерируются из событий крана, которые могут вызвать клики другие страницы. Проблема была решена с помощью ограниченного щелчка Распространение.
Я думаю, что проблема связана с этим изменением.
Что вы можете сделать, это добавить событие touchstart к событиям кликов. Это разрешило мою проблему на данный момент, пока я не найду лучшее решение.
$('button').on('click touchstart', function(){
// Click event
});
Использование последней версии FastClick сработало для меня.
Используете ли вы библиотеку FastClick? Можете ли вы попробовать и обновить до последней версии?
Мы испытываем ту же проблему с iOS 8.4.1 и FastClick версии 0.6.7. Когда мы обновились до последней версии библиотеки FastClick, проблема была решена. Не знаете, как и почему это работает, но это сработало для нас!
Можете ли вы попробовать переустановить плагин inAppBrowser
Я думаю, что у меня была такая же проблема, хотя я думаю, что это связано с событиями click, а не с ссылками в частности. Мое приложение не использует Angular, просто jQuery, несколько плагинов jQuery..
.. и некоторые плагины PhoneGap/Cordova..
У меня есть много кнопок в моем приложении, и только с этим обновлением iOS (8.4.1) я обнаружил, что некоторые из них работали, а некоторые - нет.
например. это разметка для одной из кнопок, которые перестали работать:
<div class="button theme-bg" id="add-budget"><span>Add Budget</span></div>
И это связанный jQuery:
$('#add-budget').on('click', function (e) {
// do stuff
});
Это отлично работало от iOS 7.0 вплоть до 8.4. Он сломался только на 8.4.1.
В конце концов, я обнаружил, что добавление следующих правил CSS к этой кнопке устраняет проблему:
width: 100%;
float: left;
overflow: hidden;
У меня нет абсолютно никакой идеи, почему это сработало. Было бы здорово, если кто-нибудь сможет объяснить, почему. Я только понял это, посмотрев CSS-правила кнопок, которые все еще работают, и применяя их к сломанным кнопкам.
В любом случае, я надеюсь, что это сработает и для других. Это ужасная проблема с 8.4.1 - тем более, что это обновление должно было только повлиять на Apple Music! Мне пришлось удалить приложение из всех магазинов приложений!
Это полный список правил, применяемых к моим (теперь работающим) кнопкам:
.button {
height: 50px;
line-height: 50px;
text-align: center;
font-size: 14px;
font-weight: bold;
color: #fff;
display: block;
-webkit-box-sizing: border-box;
cursor: pointer;
text-decoration: none;
text-transform: uppercase;
letter-spacing: -0.07em;
-webkit-box-shadow: 0px 8px 15px rgba(50, 50, 50, 0.1);
position: relative;
/* 3 new rules added to fix the buttons: */
width: 100%;
float: left;
overflow: hidden;
}
.theme-bg {
background: #F88319;
-webkit-transition: background 0.7s;
}
Я столкнулся с той же проблемой с ios project build от кордовы версии 3.5 Проблема была решена, когда я обновил кордову до последней версии (5.1.1) и перестроил проект
Я не уверен, что это первопричина, но он отлично работает со мной.
P/s: Мой проект с использованием угловых и кордовой
Я могу лично поручиться за Fastlink, фиксирующую эту проблему в нашем приложении, которая работает на Backbone/Marionette. Мы внедрили его, и наши события JavaScript-кликов снова работали по назначению, и не нужно было переходить с одного нажатия на любой сенсорный метод. Я знаю, что это также влияет на раскрывающиеся меню CSS (которых у нашего приложения нет). Может ли кто-нибудь ручаться за упомянутые выше хаки CSS, разрешая проблему?
Я попробовал все вышеперечисленные решения:
- непрозрачность: 1; = нет влияния
- FastClick = хуже, чем не работает (активирует ссылки, скрытые под подменю CSS)
- Я создал обходное решение с событием touchStart, но это не достойное постоянное решение. Я также собираюсь протестировать короткое решение touchStart выше, но сохранил сайт супер-свет, поэтому даже не пользуюсь JQuery, и ему придется переписать его.
- Fastlink = Я не знаю, где взять этот JS
Мое меню - это простое подменю только для CSS.. нет Javascript вообще. До сих пор, поскольку Apple, очевидно, требует этого! (И люди с выключенным JS больше не могут перемещаться по сайту.)
Но я до сих пор не нашел хорошего решения даже с JS для решения этой глобальной проблемы с веб-сайтом, созданной Apple!
Больше обсуждений по этой теме в этой публикации в сообществе Apple: https://discussions.apple.com/message/28790737
это сработало для меня:
a, button { opacity:1 !important; }
спасибо arzanardi
У меня были те же проблемы с Cordava 4.1.2 и iOS 8.4.1, я решаю проблему обновления FastClick
У меня такая же проблема, как я решил использовать css.I добавить ниже css, и это сработало для меня.
z-index:10000000;