Форум программистов, компьютерный форум, киберфорум
HTML5: мобильные приложения
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 31
1

Не работает dbclick в мобильном приложении, чем заменить?

20.02.2019, 21:10. Просмотров 1680. Ответов 9

Есть сайте, который использует dbclick в некоторых местах.
При запуске на SAMSUNG всё работает, кроме dbclick.
Чем заменить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2019, 21:10
Ответы с готовыми решениями:

Не работает dblclick в мобильном приложении, чем заменить?
Есть сайте, который использует dbclick в некоторых местах. При запуске на SAMSUNG всё работает,...

Чем можно заменить таймер в приложении
гуглик гуглил, но разобраться какой цикл нужен для моего случая я не понял сейчас я использую...

Ошибка в мобильном приложении
Вылетает ошибка в мобильном приложении при попытке использовать обмен данными между моб приложением...

Авторизация в мобильном приложении
Здравствуйте, подскажите, пожалуйста, мне необходимо реализовать авторизацию пользователя, как на...

9
26 / 18 / 11
Регистрация: 09.06.2016
Сообщений: 124
21.02.2019, 12:36 2
код в студию. Либо ставь сётчик, который будет считать нажатия. если больше двуху нажатий, то. + использовать интервал во времени.
0
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 31
21.02.2019, 17:42  [ТС] 3
Вот пример, на компьютере dblclick отрабатывает нормально, на телефоне при dblclick просто меняется маштаб:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251, width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<title>Title</title>
<script src="../js/jquery-3.3.1.min.js" type="text/javascript"> </script>
 
<script>
$(document).ready(function() {
console.log("I AM HERE");
$('.target').dblclick(function() {
//respond to double click event
console.log("double click");
});
$('.target').click(function() {
//respond to  click event
console.log("one click");
});
})
</script>
</head>
<div class="target">Click me</div>
</html>
0
26 / 18 / 11
Регистрация: 09.06.2016
Сообщений: 124
21.02.2019, 21:08 4
Так, вопрос номер 1. это сайт или мобильное приложение? если мобильное приложение, попробуйте подключить сторонние webview, например CrossWalk. Вопрос номер 2. в doctype у вас прописан заголовок для HTML версии 4. На дворе 2019 год, следует использовать HTML 5 версии. Доктайп нужен для того, что бы браузер понимал, каким образом ему интерпретировать текущий документ. Поменяйте доктайп 4 версии на доктайп версии HTML 5. и попробуйте запустить на устройстве. Чую что проблема именно в этом, старый доктайп не дает ясности брайзеру, что и как ему понимать. Так же попробуйте указать в теге <script> параметр type
HTML5
1
  <script type="text/javascript">....</script>
Это в 5 версии HTML этот параметр можно опустить, в версии HTML 4 его нужно указывать. Отпишите по результатам.

Добавлено через 5 минут
в HTML 5 подобная проблема может возникнуть, если не правильно сконфигурирована политика безопасности (Content Security Policy (CSP) ).
HTML5
1
   <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
прописывается в <head>. P.S. такая конфигурация создается для каждой страницы или приложения отдельно. Но эта должна в Вашем случае прокатить
0
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 31
21.02.2019, 21:39  [ТС] 5
Это сайт, в качестве примера - маленький фрагмент, но и он не работает.Вернее, работает только в desk-варианте. Когда я в Chrome имитирую работу на Galaxy (есть такая возможность, как вы знаете), dblclich вызывает изменение масштаба, и только.
Проблема в этом. Изменения в тексте примера я сделал, но это не меняет результат.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html  >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251, width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
 
<title>Title</title>
<script src="../js/jquery-3.3.1.min.js" type="text/javascript"> </script>
 
<script type="text/javascript">
$(document).ready(function() {
 
$('.target').dblclick(function() {
//respond to double click event
console.log("double click");
});
$('.target').click(function() {
//respond to  click event
console.log("one click");
});
})
</script>
</head>
<div class="target">Click me</div>
</html>
0
26 / 18 / 11
Регистрация: 09.06.2016
Сообщений: 124
21.02.2019, 23:31 6
попробуйте использовать viewport. хотя вероятно идет перекрытие по классу.
0
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 31
22.02.2019, 18:50  [ТС] 7
A что это такое viewport?.
0
26 / 18 / 11
Регистрация: 09.06.2016
Сообщений: 124
22.02.2019, 21:44 8
это специальный тег для адаптивного дизайна. Хотя я уже сомневаюсь что это поможет. Думаю проблема на стороне JS и события на одном и том же классе. А именно вот. Тут ребята тоже к выводу пришли, что лучше всего ставить таймер о котором писал в первом посте. SetTimeOut

Добавлено через 1 минуту
Javascript
1
2
3
4
5
6
7
8
var timeoutId;
jQuery('p').click(function(){
    timeoutId = setTimeout('console.log("Fire")', 500);
}).dblclick(function(){
    clearTimeout(timeoutId);
    clearTimeout(timeoutId - 1);
    console.log('Dblclick');
})
взято с Хабра
0
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 31
22.02.2019, 22:11  [ТС] 9
То есть отказаться от dblclick вообще?
Если запретить масштабирование(<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">),
dblclick вообще не работаетю
А что если для мобильной версии вместо dblclick использовать long press и jquery mobile?
Проверил на эмуляторе Google - работает, но на реальном телефоне long press только выделяет текст(стандартное поведение) и не выполняеет что надо.
Не знаете почему?
0
26 / 18 / 11
Регистрация: 09.06.2016
Сообщений: 124
23.02.2019, 18:26 10
скорее не отказаться, а изменить реализацию. А вот использовать другие события идея не плоха, но при условии что это не повлияет на юзабилити сайта который вы делаете. Использовать попробуйте Jquery mobile
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2019, 18:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Синхронизация данных в мобильном приложении
Создаю мобильное приложение 1С, нужна помощь в синхронизации. Необходимо реализовать обмен данными...

Встроенные покупки в мобильном приложении 1С
Пытаюсь тестировать встроенные покупки в 1С мобильное приложение. Загрузил альфа-версию на google,...

Парсер в мобильном приложении на kivy python
Доброго времени суток, уважаемые форумчане. Пишу приложение на kivy, kivymd для инфо сайта,...

Русский язык конфигурации в мобильном приложении
Доброго времени суток.Решил вот на днях попробовать сотворить мобильное приложение через 1С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.