Заказчик
Заказчик Niccy | FL.RU

Заказчик

На сайте 8 лет и 8 месяцев (заходил 1 год 7 месяцев 30 дней назад)
2
444.93
Рейтинг
444.93
Все (26)       Заказы (26)        Вакансии (0)       Конкурсы (0)
Разместить заказ
28 Апреля 2020
Бюджет: 5000 руб
Есть работающая (в тестовом режиме) подписка на месяц (с автопродлением).
Нужно отобразить "Подписка активна. Следующий платеж 01.05.2020". Без собственного бэкэнда. Как я понимаю, можно обойтись androidpublisher V3. Сделать все можно через Teamviewer, если это удобно.

- Предусмотреть кэш статуса подписки ("Подписка активна. Следующий платеж 01.05.2020"), чтобы не обращаться к внешним сервисам каждый раз.
- Если подписка истекла и не была продлена (автопродление) по каким то причинам – выводим "Последний платеж не удался" и рядом кнопка "Оплатить". Функционал оплаты уже есть, делать не нужно.
- После успешной оплаты статус подписки соответственно тут же обновляется.
- Проверка статуса подписки (из кэша или онлайн) делается onResume()

Прошло времени с момента публикации: 4 года 1 месяц 1 день 10 часов 38 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

04 Ноября 2019
Бюджет: 5000 руб
Проект сделан в Android Studio. Подписка на год или месяц. При открытии приложения – сообщение "Покупки не доступны". Подозреваю что что то не так в Google Cloud Platform

Чтобы не настраивать права доступа на тестинг и лиц. ключи на вашем аккаунте – лучше помочь через Team Viewer.
Выдержка из кода:

mBillingManager = new BillingManager(this, SKUS, new BillingManager.Listener() {
@Override
public void onInitFinished() {
updateSubsriptionUI();
}

@Override
public void onInitFailed(int responseCode) {
Toast.makeText(MainActivity.this, "Покупки недоступны", Toast.LENGTH_SHORT).show();
updateSubsriptionUI();
}

@Override
public void onItemsUpdated() {
updateSubsriptionUI();
}

@Override
public void onPurchaseFinished(BillingItem billingItem) {
updateSubsriptionUI();
}

@Override
public void onPurchaseFailed(int responseCode) {
Toast.makeText(MainActivity.this, "При покупке произошла ошибка", Toast.LENGTH_SHORT).show();
}

@Override
public void onPriceChanged(BillingItem oldItem, BillingItem newItem) {
showPriceChanged(newItem);
}
});

Прошло времени с момента публикации: 4 года 6 месяцев 27 дней 11 часов 10 минут
Раздел: Программирование / Google Android

19 Октября 2018
Есть тестовое приложение сделанное по инструкции codelabs.developers.googl... Подписки добавляются в Google Play Console. Платежи проходят. Нужно частично заменить нативный интерфейс на WebView интерфейс, а также добавить несколько вещей (см. ниже)

Описание работы приложения:

В качестве теста используем index.html c элементом div. При запуске приложения: если подписка не оплачена – фон у divа красный и есть кнопка "Оплатить подписку", если оплачена – фон зеленый, кнопка "Оплатить подписку" скрыта и в самом divе написан срок окончания подписки в формате "Подписка до 01.01.2018". Срок окончания подписки обновляется при запуске приложения.
При истечении срока подписки и неудачного авто платежа по каким то причинам – срок окончания подписки выглядит так : "Подписка закончилась 01.01.2018. Автоплатеж не удался. У Вас есть льготный период оплаты до 03.01.2018. Ссылка "Проверьте Ваш способ оплаты". Ссылка ведет в нативный (не сайт) Google play на страницу с платежными данными. После истечения льготного периода в сроке окончания подписки выводим: "Льготный период для оплаты закончен 03.01.2018. Ссылка "Проверьте Ваш способ оплаты" с соотв. ссылкой.
При клике на "Оплатить подписку" – появляется стандартное окно оплаты. В окне оплаты выводим добавленные ранее через Google Play Console подписки (На год, На 3 месяца)
Основные возможности:
- Используем Play Billing Library
- Используем библиотеку проверки лицензии (LVL). Способ проверки – ServerManagedPolicy. Метод хранения ключа – SharedPreferences с AESObfuscator.
- Сделать инструкцию об уведомлении пользователей об изменении цены на подписку
- При обновлении способа оплаты (например замена платежной карты) следующий авто платеж должен сработать без проблем
- Все основные действия в исходниках должны быть прокомментированы

Прошло времени с момента публикации: 5 лет 7 месяцев 12 дней 10 часов 12 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК
09 Октября 2018
По договоренности

Необходимо реализовать платную подписку в приложении WebView.
Доступ в Google Play Service для теста оплаты подписки имеется.
В качестве теста используем div. Если подписка не оплачена – фон у divа красный и есть кнопка "Оплатить подписку", если оплачена – фон зеленый, кнопка "Оплатить подписку" скрыта и в самом divе написан срок окончания подписки. Срок окончания всегда актуальный (обновляется).
Если нажимаем "Оплатить подписку" – появляется окно оплаты. В окне оплаты: два чекбокса: "Оплатить на год" и "Оплатить на 3 месяца". Ниже еще 2 чекбокса: "Платежная карта" и "Google play".
По умолчанию галка стоит на "Оплатить на год". Если у пользователя есть привязанная к Google play карта – ставим галку на "Google play", если нет – на "Платежная карта".
В самом низу кнопка "Оплатить". Нажимаем "Оплатить". Если способ оплаты "Google play" – оплачиваем, выводим сообщение "Оплата успешна" (закрываем окно оплаты) или "Оплата не удалась по таким то причинам".
Если нажали "Оплатить" и выбрана "Платежная карта" – показываем страницу ввода данных кредитки. (номер карты, срок действия, три цифры на обратной стороне). Здесь же чекбокс "Запомнить карту" с установленной галкой (запоминаем данные, если стоит галка) и ниже кнопка "Оплатить". Вводим данные карты – нажимаем "Оплатить" – выводим сообщение "Оплата успешна" или "Оплата не удалась по каким то причинам".

Основные возможности:

- Все основные действия в исходниках должны быть прокомментированы
- Предусмотреть кнопку закрытия окна оплаты в любой момент (если кнопки нет в стандартном окне)
- Используем встраиваемые средства – такие как Google Play Billing. Никаких сторонних библиотек.
- Оплата подписки делается не выходя из приложения
- 2 способа оплаты: Карта (с заполнением полей) и через Google play.
- Возможность менять цену и длительность подписки (написать пошагово – как это сделать)
- Возможность добавлять бесплатный пробный период (написать пошагово – как это сделать)
- Возможность установки разных цен для разных стран (написать пошагово – как это сделать)
- При смене телефона или удалении приложения подписка сохраняется. Делаем это без использования входа в аккаунт в приложении. Т.е. используем данные аккаунта из Google Play)
- При изменении даты на телефоне и снова выставлении актуальной – сроки подписки не должны нарушаться.
- Подписку нельзя "обмануть" если запретить приложению доступ в интернет
- Подписка оплачивается ежемесячно или ежегодно автоматически – пользователь вначале покупки выбирает "Оплатить год" или "Оплатить месяц". Цена за год можно установить меньше в пересчете по месяцам – например 1000 руб за год меньше чем 100 руб за мес..
- При оплате вручную (первая оплата) и при автоматическом списании (в дальнейшем) – предусмотреть недостаток средств на карте, окончание срока действия, блок карты, не корректно введенные данные – выводим соотв. сообщения

Прошло времени с момента публикации: 5 лет 7 месяцев 21 день 17 часов 14 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

19 Ноября 2017
По договоренности
При фразе "Лима" запускается тестовое приложение (самое простое activity) и выводиться сообщение "Успешно". Если запускаем приложение кликом по иконке – надпись "Успешно" не должна выводиться. Приложение должно быть всегда в режиме "прослушки" – после перезагрузки телефона также. Если произносим "Лима" и приложение уже запущено – не должно возникать конфликтов. Работа на android >5.

Прошло времени с момента публикации: 6 лет 6 месяцев 10 дней 11 часов 26 минут
Раздел: Программирование / Google Android

07 Ноября 2017
По договоренности
К ИМ webdevkin.ru webdevkin.ru/examples/im/... необходимо добавить (все добавленное должно быть помечено в исходниках):

- Поиск по товарам. При наборе слова, выводятся товары-ссылки. При клике на товар-ссылку – открывается страница с товаром. При этом в фильтре по параметрам "выбираются" соответствующие товару параметры. При изменении фильтра – работа такая же как обычно (показ товаров в соответствии с фильтром)

- Опция представления товаров в виде плитки (три, две колонки)

- Автоподгрузка товаров при скроллинге. По умолчанию 10 товаров на странице.

Все должно быть на PHP, Mysql, JS, HTML, Jquery (как исключение)

Прошло времени с момента публикации: 6 лет 6 месяцев 23 дня 9 часов 46 минут
Раздел: Программирование / Веб-программирование

06 Ноября 2017
По договоренности
Перемещаемые элементы в списке (при нажатии и удержании) нужно превратить в названия проектов. Каждый проект содержит в себе список задач (элементы div с текстом) При клике на проект, список задач появляется ниже проекта, при повторном клике – скрывается. Перемещать можем как проекты, так и задачи в проектах. Только задачи должны перемещаться в пределах списка задач открытого проекта. При открытии сразу нескольких проектов появляется вертикальный скроллинг – при этом все должно работать корректно.

Прошло времени с момента публикации: 6 лет 6 месяцев 23 дня 11 часов 15 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

08 Октября 2017
Бюджет: 7000 руб
С помощью Google Cloud Speech либо Яндекс Speech Kit либо другого сервиса нужно реализовать добавление текста в приложение голосом. Приложение должно "Слушать" всегда – в свернутом режиме и после перезагрузки телефона. Говорим "Лима1" – открывается приложение. Если нет интернета – звук ошибки. Если есть интернет: звук (готовность "слушать"), после звука готовности говорим любой текст. Если пропадает интернет во время записи звука, ни чего не сказали или произошла какая то другая ошибка – выводим звук ошибки и сообщение "Ошибка", сворачиваем приложение (опять в режиме ожидания).
Приложение должно понять, когда текст закончился и начать распознавать (не нужно нажимать никаких кнопок). При успешном распознании, вставляем текст из java в webview примерно так (код для webview):

function lima1() {
var text = 'наш текст'
document.querySelector('#text1').innerText = text
}

Соответственно, если сказали "Лима2" – должен сработать код:

function lima2() {
var text = 'наш текст'
document.querySelector('#text2').innerText = text
}

как только успешно вставили текст, звучит звук, показываем галочку на экране, приложение сворачивается (не закрывается) и переходит в обычный режим (режим ожидания).

Также нужно сделать инструкции:
- Добавление/удаление дополнительных слов активации приложения (Лима3, Лима4 и т.д.)
- Добавление языков распознавания

Работа на Android 5 и выше.

Прошло времени с момента публикации: 6 лет 7 месяцев 21 день 13 часов 21 минута
Раздел: Программирование / Программирование для сотовых телефонов и КПК

12 Августа 2017
По договоренности
Нужно сделать опцию в календаре: поставили галочку – неделя начинается с воскресения, сняли – с понедельника. Желательно использовать существующий js код (с изменениями) или аналогичный по размеру. HTML календаря должен сохраниться

<table id="calendarBig"><td><table class="table" id="1"><div style="margin-top:3%" class="mouth_style" align="center">Январь</div><tbody></t able><tr><td><table class="table" id="2"><thead><div class="mouth_style" align="center">Февраль</div><tbody></ table><tr><td><table class="table" id="3"><thead><div class="mouth_style" align="center">Март</div><tbody></tab le><tr><td><table class="table" id="4"><thead><div class="mouth_style" align="center">Апрель</div><tbody></t able><tr><td><table class="table" id="5"><thead><div class="mouth_style" align="center">Май</div><tbody></tabl e><tr><td><table class="table" id="6"><thead><div class="mouth_style" align="center">Июнь</div><tbody></tab le><tr><td><table class="table" id="7"><thead><div class="mouth_style" align="center">Июль</div><tbody></tab le><tr><td><table class="table" id="8"><thead><div class="mouth_style" align="center">Август</div><tbody></t able><tr><td><table class="table" id="9"><thead><div class="mouth_style" align="center">Сентябрь</div><tbody>< /table><tr><td><table class="table" id="10"><thead><div class="mouth_style" align="center">Октябрь</div><tbody></ table><tr><td><table class="table" id="11"><thead><div class="mouth_style" align="center">Ноябрь</div><tbody></t able><tr><td><table class="table" id="12"><thead><div class="mouth_style" align="center">Декабрь</div><tbody></ table></table><div class="years_style" align="center"><span id="prev_year"></span><span id="cur_year"></span><span id="next_year"></span></div>



<script type="text/javascript">
function calendarBig(year) {

for (var m = 1; m <= 12; m++) {
var D = new Date(year,[m],0),
Dlast = new Date(D.getFullYear(),D.getMonth()+1,0).getDate(),
DNlast = new Date(D.getFullYear(),D.getMonth(),Dlast).getDay(),
DNfirst = new Date(D.getFullYear(),D.getMonth(),1).getDay(),
calendar = '<tr>';

if (DNfirst != 0) {
for(var i = 1; i <>';
}else{
for(var i = 0; i <>';
}

for(var i = 1; i <= Dlast; i++) {

calendar += '<td valign="top"><div class="number_day" align="Center">' + i + '</div><div align="center" class="day"></div><div class="full_note" style="display:none"></div>';

if (new Date(D.getFullYear(),D.getMonth(),i).getDay() == 0) {
calendar += '<tr>'
}

}
document.querySelector('#calendarBig table[id="' + [m] + '"] tbody').innerHTML = calendar;
}
}
calendarBig(new Date().getFullYear());
</script>

Прошло времени с момента публикации: 6 лет 9 месяцев 17 дней 14 часов 41 минута
Раздел: Программирование / Веб-программирование

25 Июня 2017
По договоренности
Логотип для программы-календаря под android. В векторе. Не менее 5 вариантов. По прикрепленному эскизу или на свое усмотрение. Без текста. Лог должен быть простым и понятным. Количество используемых цветов – не более трех. Желательно не копировать дизайн с имеющихся логов: play.google.com/store/app... Оплата по факту.

Прошло времени с момента публикации: 6 лет 11 месяцев 4 дня 13 часов 24 минуты
Раздел: Дизайн / Логотипы

26 Марта 2017
По договоренности
Посылаю данные c сервера1:

$.ajax({
type: "GET",
url: "blabla.com/conect.php",
xhrFields: {withCredentials: true},
data: { email: email, pas: pas }
}).done(function( msg ) {
//$('#txtHint').text('Сохранено')
});

На сервере2:

<?php
header('Access-Control-Allow-Origin: *');
$email = $_GET['email'];
$pas = $_GET['pas'];

$con = mysqli_connect('localhost','bla','bla' ,'bla');

mysqli_query($con,"INSERT INTO bla (data, content) VALUES ('$email', '$pas')");
?>

Вылетает ошибка:The 'Access-Control-Allow-Origin' header has a value 'blabla.com' that is not equal to the supplied origin. Origin 'localhost:45342' is therefore not allowed access. Как я понимаю это из за политики безопасности. Как можно решить эту проблему, не прибегая к использованию только одного сервера?


Прошло времени с момента публикации: 7 лет 2 месяца 6 дней 10 часов 15 минут
Раздел: Программирование / Веб-программирование

21 Ноября 2016
По договоренности
Скачал ресурсы с playcanvas.com. По умолчанию ресурсы подключаются через сервер, как я понимаю. При локальном размещении выдает ошибку при запуске:

playcanvas-stable.min.js:12983 XMLHttpRequest cannot load file:///C:/Users/User/Desktop/Sleema_g/config.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

Предложенные на оф. форуме решения не помогли

Прошло времени с момента публикации: 7 лет 6 месяцев 9 дней 9 часов 47 минут
Раздел: Другое / Программирование игр

04 Ноября 2016
По договоренности
Для салона тайского массажа. Лог должен содержать в себе слова "Тайский кабинет" Картинка с девушкой сложившей руки вместе (жест) в любом месте, главное – гармонично и красиво. Слова сиреневые. Картинка простая и понятная, в не более чем в двух-трех цветах.

Прошло времени с момента публикации: 7 лет 6 месяцев 26 дней 9 часов 58 минут
Раздел: Дизайн / Логотипы

Рейтинг: 6285.3 Исполнитель определен:
06 Октября 2016
По договоренности
Приветствую! Нужно чтобы при клике на input клавиатура имела всегда русскую раскладку. Если вышли из браузера, сменили язык при написании смс например, зашли обратно, кликнули на input – опять должна появиться русская расскладка

Прошло времени с момента публикации: 7 лет 7 месяцев 23 дня 11 часов 41 минута
Раздел: Программирование / Веб-программирование

17 Сентября 2016
По договоренности
При клике на нижние элементы, клавиатура перекрывает их.
sleema.com/klava_perekr.h...

Прошло времени с момента публикации: 7 лет 8 месяцев 11 дней 11 часов 32 минуты
Раздел: Программирование / Веб-программирование

14 Сентября 2016
По договоренности
Необходимо создать с нуля или доработать пример. В примере необходимо нажать и удерживать элемент, чтобы его активировать.
Нужно убрать дублирование активного элемента при перемещении
Пример здесь: sleema.com

Прошло времени с момента публикации: 7 лет 8 месяцев 14 дней 11 часов 25 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

Рейтинг: 773.9 Исполнитель определен:
31 Июля 2016
По договоренности
При клике на нижние divы – клавиатура перекрывает их. Если начинаем печатать – элемент показывается. Нужно, чтобы элемент показывался при клике. Желательно обойтись CSS или одним оператором JS

<body>

<div style="position:fixed; overflow: auto; width:100%; height: 100%; background-color:#00CC99;z-index:1">

<div id="show1" align="center" style="overflow-wrap: break-word;width:100%">

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

<div contenteditable="true">erfrewrewr</div>

</div>

</div>

</body>

Прошло времени с момента публикации: 7 лет 9 месяцев 29 дней 12 часов 46 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

23 Июля 2016
По договоренности
Проблема появляется только если сделать свайп по экрану. Без свайпа срабатывает с первого раза
Также приму за решение, если сделаете показ и скрытие меню (условно) при длинном вертикальном списке в body. Само меню содержить длинный список, т.е. скролится. При скролле не должен скролиться body. Меню открываем, когда опустились примерно в середину списка body.

<p style="height:1000"></p>
<p style="position:fixed; bottom:30%; right:10%" id='close_full'>RED</p>
<script>
//Чтобы исключить скролл у body
document.querySelector('body').style.overflow = 'hidden'
close_full.onclick=function(){
document.querySelector('body').style.background = 'red'
}
</script>

Прошло времени с момента публикации: 7 лет 10 месяцев 6 дней 11 часов 38 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

14 Июля 2016
По договоренности
Приветствую!
На телефоне делаю свайп в любой области экрана и кликаю по close_full – не работает. Срабатывает со второго клика
Если не делать свайп – все работает с первого клика

<div style="width:100%;height:200%;background-color:red;"> </div>
<div style="display:none; position:fixed; width:100%; height: 100%; background-color:#00CC99;z-index:1" id="full_note">
<p style="position:fixed; bottom:30%; right:10%" id='close_full'>Закрыть</p>
</div>
<script>
document.querySelector('#full_note').style.display = 'block'
document.querySelector('body').style.overflow = 'hidden'
close_full.onclick=function(){
document.querySelector('#full_note').style.display = 'none'
}
</script>

Прошло времени с момента публикации: 7 лет 10 месяцев 15 дней 12 часов 53 минуты
Раздел: Программирование / Веб-программирование

31 Марта 2016
По договоренности
Работа на touch и на обычных (декстоп) экранах.
Есть список divов (40 шт) с текстом (текст произвольный – просто слова, одно слово в каждом divе). Divы имеют атрибут contentable='true' (при клике, текст становиться редактируемым).
Нужно сделать: При нажатии и удержании 2 сек. Div "активируется" – меняет цвет, его можно двигать вертикально в списке (следует за пальцем или мышью). При перемещении div "выдавливает" другие divы. Отпустили палец или мышь – div встал на соответствующее место. Если перемещаем div в конец или в начало списка, значит мы выходим за пределы экрана (список у нас большой и не умещается на одном экране), соответственно должен сработать скролл. Если перемещаем палец быстро вниз или вверх – div не должен отставать от пальца. Если медленно скролим страницу с divами – divы, на которые мы попадаем пальцем не должны активизироваться. Также текст в divе не должен выделяться (копирование) если мы нажали на div и удерживаем.

Визуально, как должно работать можно посмотреть в программе Todoist (Android, IOS), предварительно добавив 40 (!) заметок)

Желательно без использования тяжелых библиотек (Jquery UI и пр.)

Прошло времени с момента публикации: 8 лет 2 месяца 15 часов 4 минуты
Раздел: Программирование / Веб-программирование

Рейтинг: 775.3 Исполнитель определен:
18 Января 2016
По договоренности
Для сенсорного экрана. Срабатывает при свайпе, начатом от края экрана (~10 % области экрана) + если свайп начался за пределами экрана. Задвигается обратно соответствующим свайпом в любой области экрана. Желательно без библиотек (только JS/CSS/HTML). Если применяем библиотеку – ее вес не более 50 kB.

Весь код прокомментируйте пожалуйста

Прошло времени с момента публикации: 8 лет 4 месяца 12 дней 21 час 45 минут
Раздел: Программирование / Веб-программирование

10 Января 2016
По договоренности
Заходим в программу, кликаем на инпут – появляется клавиатура. Нажимаем "Назад" – клавиатура скрывается и срабатывает функция run(). Это нормально. Но если мы нажимаем "Домой" или кнопку питания или у нас входящий звонок – тоже срабатывает run() – это нужно исключить. Думаю нужно поставить дополнительное условие – "Если активити не активна – функция run() не срабатывает" Перечисление событий звонка, нажатия кнопок не допустимо.

Код активити:

package com.comname.reminder_4_4;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.inputmethod.InputMethodManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import java.io.IOException;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView vw = (WebView) findViewById(R.id.webView);
vw.getSettings().setJavaScriptEnabled(true); // включили JavaScript
vw.loadUrl("file:///android_asset/index.html");

final View activityRootView = findViewById(R.id.webView); // получаем ID лайота (нужно указать)
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { // ставим "прослушку" на лайот
private int lastHeight;// предыдущее значение высоты

@Override
public void onGlobalLayout() {
if (lastHeight == 0) { // если не определено, то определить (1-ый вызов метода)
lastHeight = activityRootView.getHeight();
}
// проверка на то, что предыдущее значение меньше текущего
// если разница более 100, то значит, была закрыта клавиатура
if (lastHeight <> 100) {
WebView vw = (WebView) findViewById(R.id.webView);
vw.loadUrl("javascript:run()");
}

lastHeight = activityRootView.getHeight(); // установка предыдущего значения
}


});

private static long back_pressed;

public void onBackPressed() {
if (back_pressed + 2000 > System.currentTimeMillis())
super.onBackPressed();
else
Toast.makeText(getBaseContext(), "Для выхода нажмите еще раз",
Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}

}


Код index.html:

<input type="text">
<div id="test"></div>
<script type="text/javascript" src="js.js"></script>

Код js.js:

function run (){ document.querySelector('#test').innerText = 'hello'}

Прошло времени с момента публикации: 8 лет 4 месяца 20 дней 15 часов 51 минута
Раздел: Программирование / Google Android

06 Января 2016
По договоренности
Приветствую! Код ниже нужен для запуска run() – функции скрытия блока, когда клавиатура убирается с экрана (меняется высота экрана). Если клавиатура убирается (запускается run()) когда поле ввода потеряло фокус – это нормально, но если например мне позвонили и я находился в приложении – клавиатура тоже убирается и запускается run() – это не нормально. Потому что если по окончании вызова вернутся в приложение – блок будет скрыт. Нужно чтобы блок скрывался только при намеренном действии.


final View activityRootView = findViewById(R.id.webView); // получаем ID лайота (нужно указать)
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { // ставим "прослушку" на лайот
private int lastHeight;// предыдущее значение высоты

@Override
public void onGlobalLayout() {
if (lastHeight == 0) { // если не определено, то определить (1-ый вызов метода)
lastHeight = activityRootView.getHeight();
}
// проверка на то, что предыдущее значение меньше текущего
// если разница более 100, то значит, была закрыта клавиатура
if (lastHeight <> 100) {
WebView vw = (WebView) findViewById(R.id.webView);
vw.loadUrl("javascript:run()");
}

lastHeight = activityRootView.getHeight(); // установка предыдущего значения
}


});

Прошло времени с момента публикации: 8 лет 4 месяца 24 дня 18 часов 42 минуты
Раздел: Программирование / Программирование для сотовых телефонов и КПК

06 Декабря 2015
По договоренности
Код ниже работает не корректно: Если клавиатура активна, при нажатии "назад", сначала прячется клавиатура. Нажимаем еще раз "назад" – выполняется run(). Необходимо одним нажатием "назад" скрыть клавиатуру и запустить run().

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView vw = (WebView) findViewById(R.id.webView);
vw.getSettings().setJavaScriptEnabled(true);
vw.loadUrl("file:///android_asset/index_ls.html");

public void onBackPressed() {

WebView vw = (WebView) findViewById(R.id.webView);
vw.loadUrl("javascript:run()");

}
}
}


Код должен быть прокомментирован.
Оплата после теста лично, через Яндекс деньги/ Webmoney(r-кошелек) / Сбербанк.

Прошло времени с момента публикации: 8 лет 5 месяцев 24 дня 14 часов 49 минут
Раздел: Программирование / Программирование для сотовых телефонов и КПК

Рейтинг: 34.6 Исполнитель определен:
03 Ноября 2015
По договоренности
Checkbox Yandex/Google. Текст. Кнопка «Искать». Нажимаем, запускается браузер по умолчанию (определен в настройках системы), открывается страница c поисковой выдачей на основе нашего текста.

Пример и код отсутствуют
Чистый JS
JS должен быть прокомментирован.
Оплата после теста лично, через Яндекс деньги/ Webmoney(r-кошелек) / Сбербанк.

Прошло времени с момента публикации: 8 лет 6 месяцев 27 дней 13 часов 19 минут
Раздел: Программирование / Google Android

25 Сентября 2015
По договоренности
Мысленно делим экран телефона на три колонки по ширине: Слева 10% (зона А), Центр 80 % (зона Б), справа 10 % (зона А). За пределами экрана слева и справа у нас боковые стенки (корпус телефона), это будет зона В. Иногда (случайно) мы НАЧИНАЕМ свайп (вправо или влево) из зоны В¸ чтобы выдвинуть меню. Иногда из зоны А. Необходимо обеспечить стабильное выдвижение меню, независимо, из какой зоны (А или В) мы начали свайп. Если свайп начали из зоны Б – ни чего не делаем (меню не должно сработать) Меню выдвигается на 80 % экрана. Задвигается меню соответствующим (обратным) свайпом. В меню должен быть вертикальный список, например 50 шт <li> html</li>), нужно обозначить наличие продолжения списка стрелкой внизу. Список можно скролить (вниз/вверх). Во время выдвижения/задвижения меню, не должно ни чего прыгать (изменяться размер окна)

JS должен быть прокомментирован.
Оплата после теста лично, при встрече в Москве или через Яндекс деньги/ Webmoney(r-кошелек) / Сбербанк.

Пишите пожалуйста в ватцап или вайбер для оперативного общения – 7 999 800 1221

Прошло времени с момента публикации: 8 лет 8 месяцев 5 дней 10 часов 50 минут
Раздел: Программирование / Веб-программирование

Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».