Что такое отладка vk mini apps
Приложение в приложении: как устроена платформа сервисов VK Mini Apps
Привет, vc.ru! Меня зовут Антон Циварев. В Команде ВКонтакте я руковожу платформой для сторонних разработчиков. В августе 2018 мы запустили VK Mini Apps — платформу сервисов внутри мобильного приложения ВКонтакте. Сейчас там более 5 тысяч активных сервисов: абсурдные игры, акции больших брендов, интернет-магазины и даже альтернативная экономика — рассказываю о самых интересных решениях.
Сервисы VK Mini Apps — веб-приложения в нативном клиенте, позволяющие решать повседневные задачи или интересно проводить время, не выходя из ВКонтакте. Например, пополнять счёт транспортной карты, заказывать еду или такси, знакомиться с новыми людьми, искать работу или учить правила дорожного движения. Платформа открытая, так что сделать приложение может каждый. Большинство проектов придуманы независимыми разработчиками, но представлен и большой бизнес — «Макдоналдс», Dostaевский, ComicCon, «Ситимобил». А самым известным приложением на базе VK Mini Apps можно назвать, пожалуй, VK Coin — в начале апреля о нём говорили едва ли не все развлекательные паблики.
Изначально мы назвали платформу VK Apps, но недавно решили добавить в название приставку Mini. Кажется, так лучше передаётся суть проекта — лёгкие и быстрые сервисы в одном приложении VK прямо в телефоне. Этот формат уже успешен на китайском рынке: в мессенджере WeChat функционируют свыше миллиона «приложений в приложении».
Для пользователей преимущества сервисов, на мой взгляд, достаточно очевидны: знакомый интерфейс, не нужно устанавливать отдельные приложения и забивать память, не приходится искать программу среди десятков других иконок на телефоне.
Для бизнеса и разработчиков есть свои плюсы :
Во время работы над платформой мы поняли, что для пользователей сервисы VK Mini Apps должны восприниматься как что-то привычное, а для разработчиков — оставаться максимально простыми в создании. Поэтому мы остановились на веб-приложениях, которые будут открываться в WebView на полный экран. Все сервисы созданы с использованием открытой библиотеки для мобильного интерфейса, которой ежедневно пользуемся и мы сами. Это чистый веб, написанный на HTML, CSS и JavaScript без единой строчки нативного кода и мимикрирующий под приложение ВКонтакте.
VK Mini Apps стоит на трёх китах:
С помощью WebView и VK UI были созданы некоторые экраны приложения VK — это позволило нам ускорить его разработку в несколько раз. Именно так мы писали экраны для создания сообщества и управления им, запуска рекламных постов и жалоб на контент. Всю документацию, полезную информацию и примеры сервисов для разработчиков можно найти в сообществе VK Mini Apps: vk.com/vkappsdev
К марту мы планировали выйти на 2 миллиона уникальных пользователей в месяц, а вышли на 10 миллионов. Всего сейчас на платформе — более 5 тысяч активных сервисов, но далеко не каждому из них нужен выход на всю аудиторию ВКонтакте. Поэтому в каталоге, который доступен всем пользователям, размещены около 90 сервисов — самых качественных и массовых. Есть и другие точки входа: сервис можно разместить в меню сообщества, добавить в чат-бота, а если ссылку на приложение вставить в публикацию, то к ней прикрепится красивый заметный сниппет. Кроме того, пользователи могут найти нужный сервис в общем поиске по ВКонтакте.
У нас получилось создать комьюнити разработчиков VK Mini Apps — сообщество, митапы, чаты. Мы поддерживаем общение с авторами успешных проектов, предлагаем им давать нам фидбэк и делиться опытом с другими разработчиками. Дальше я как раз расскажу о нескольких сервисах, которые стали популярны на нашей платформе.
Чтобы опробовать VK Mini Apps и просто «запилить что-нибудь смешное», один из независимых разработчиков в декабре 2018 года запустил абсурдный сервис — пользователи платят деньги, чтобы попасть в топ внутри самого сервиса.
На создание «Сотена» у меня ушла одна неделя. За первый вечер создал дизайн, за следующие три написал прототип, ещё три дня тестировал приложение. Для сравнения — столько же времени, ровно неделю, я потратил, чтобы найти юридическое лицо и официально принимать платежи в приложении.
Всего за неделю в «Сотен» пришли 150 тысяч пользователей, из них 2151 человек отправил деньги. Суммарный оборот сервиса составил 480 000 рублей. «Сотен» стал первопроходцем в своей нише и заложил тренд на простые по механике и быстрые в разработке сервисы с большим виральным потенциалом. Подробнее о сервисе можно прочесть в этом материале на VC.
В новом году появился новый виральный сервис —Tool 42 (vk.com/tool42). С его помощью пользователь может узнать, как давно зарегистрирован ВКонтакте, кто из друзей или друзей друзей добавил его в чёрный список, а также какие записи на странице или в сообществе наиболее популярны по разным показателям: отметкам «Нравится», комментариям, просмотрам. Создал сервис за пару ночей, «когда было свободное время», программист Павел Громадчук. Он хотел получить опыт разработки на React и реализовать полезные функции, которых, на его взгляд, не хватало в VK.
В конце февраля приложение появилось в каталоге, но резко набрало популярность две недели спустя — когда разработчик добавил возможность опубликовать свою дату регистрации ВКонтакте в историях. Пользователи сравнивали свой результат с данными друзей, и это своеобразное соревнование стало невероятно виральным — за первые четыре дня сервисом воспользовались 2 миллиона человек, которые опубликовали больше 700 тысяч историй. 17 марта 21 % авторов всех историй ВКонтакте размещали их через Tool 42. Разработчик потратил всего один час на написание кода для публикации истории и тысячу рублей на создание картинки для шеринга у дизайнера.
Vsemayki.ru — это интернет-магазин по печати принтов на одежде и сувенирах с полумиллионом заказов в год. Свой сервис на VK Mini Apps Vsemayki.ru (vk.com/app6800340) запустили в конце января 2019. Это был эксперимент: создателям хотелось проверить перспективность новой платформы в плане продаж. В итоге они стали одним из первых интернет-магазинов, которые представлены в каталоге. В сервисе быстро оформляются заказы за счёт автозаполнения формы с разрешения пользователя.
Мы окупили то, что потратили на создание приложения, и уже вышли в плюс. При этом мы ничего не тратим на рекламу, все продажи — из органического трафика приложения. Приятно видеть, что трафик постоянно растет. И даже если не все пользователи делают заказы, о нас бесплатно ежемесячно узнают десятки тысяч пользователей. Хорошая брендовая инвестиция в будущее.
Работа с ресурсами для iOS
Если вы планируете разместить мини-приложение в каталоге для iOS, вам нужно выполнить приведённые ниже инструкции.
Если вы не собираетесь публиковать сервис в каталоге или создаёте мини-приложение только для Android или версии для компьютера, пропустите этот раздел.
Для организации ресурсов используется технология ODR (On-Demand Resources), разработанная компанией Apple. Её должны применять не только приложения ВКонтакте, но и любые другие приложения, представленные в App Store и содержащие встроенные сервисы. Но разработчику мини-приложений не нужно самостоятельно в этом разбираться, достаточно отправить нам ресурсы, а всю остальную работу берёт на себя ВКонтакте.
Важно! Убедитесь, что вы указали Apple Developer Team ID и Apple Developer Team Name в настройках мини-приложения (Мои приложения → Редактировать → Информация → Дополнительно).
Чтобы подготовить файлы ресурсов:
Пример каталога проекта
. ├ index.html ├ favicon.ico ├ manifest.json ├ service-worker.js └ static ├ css └── main.css ├ js └── main.js └ media └── main.png
Следующий шаг зависит от того, где вы храните файлы проекта. Если вы не используете хостинг статики, файлы ресурсов можно загрузить архивом.
Если вы не используете хостинг статики:
Все мини-приложения, которые запускаются в iOS-клиенте версии 6.46 и выше, используют технологию ODR. При этом файлы мини-приложения (в том числе index.html ) запускаются локально на устройстве пользователя.
Если на вашем сервере настроены политики работы с CORS-заголовками, то в ответе на запросы без адреса источника вместо данных будет возвращаться CORS-ошибка.
Пример текста CORS-ошибки
Например, если для Android-клиента (где не используется технология ODR) URL в сетевом запросе выглядит:
То для iOS-клиента (с технологией ODR) URL должен выглядеть так:
В результате будет выполнен HTTPS-запрос, в котором заголовок Origin будет содержать адрес хоста из URL приложения (Мои приложения → Настройки → Версия для мобильных клиентов).
Важно! URL-схема vkcors работает в iOS-клиенте версии 6.47 и выше.
Если вам необходимо передавать в запросе двоичные данные в виде BLOB, с помощью FormData или просто в теле запроса, конвертируйте BLOB-объекты в USVString любым удобным способом.
Чтобы отлаживать работоспособность архива в ODR-режиме, в iOS-клиенте, начиная с версии 6.47, появилась возможность протестировать загруженный архив.
Если ваше приложение размещено на хостинге мини-приложений, поставьте галочку в пункте Загружать мини-приложения в ODR из хостинга, а после этого выполните повторный деплой приложения на хостинг.
Вы можете управлять администраторами приложения, для которых будет доступна опция тестирования ODR-архива. Для этого нажмите на кнопку Тестирование ODR:
В списке администраторов приложения выберите пользователей, для которых необходимо включить тестовый режим ODR, затем нажмите на кнопку Сохранить:
Теперь приложение можно открыть на клиенте — при этом оно загрузится в режиме тестирования архива ODR. Это означает, что будут использованы файлы из последнего загруженного вами архива или последнего деплоя на хостинг статики ВКонтакте.
Как проверить и удостовериться, что сервис запущен именно в режиме тестирования архива ODR? Нажмите на три точки в правом верхнем углу экрана мини-приложения. В верхней части action menu будет видна пометка В режиме теста ODR:
Да, если вы хотите, чтобы мини-приложение попало в каталог для iOS.
Для организации ресурсов мини-приложений используется технология ODR (On-Demand Resources), разработанная компанией Apple. Суть её в том, что при первом запуске файл index.html с кодом мини-приложения и файлы ресурсов сохраняются на устройстве пользователя. То есть после первого запуска мини-приложение будет запускаться из файла, сохраненного локально.
Откройте файл со ссылками на ресурсы (например, index.html ) в браузере на локальной машине.
Каталог обновляется один раз в неделю вместе с обновлением в App Store приложения ВКонтакте.
Нужно ещё раз отправить каталог проекта на хостинг.
Cross-Origin Resource Sharing – это механизм, который позволяет безопасно выполнять кроссдоменные запросы, то есть обращаться к ресурсам на другом домене.
Можно использовать HTTP-заголовок ответа Access-Control-Allow-Origin: но только если вы полностью осознаете последствия. Мы не рекомендуем этот подход, так как в этом случае доступ к ресурсам открыт для любого источника.
После того как вы подготовили архив и проверили, что он работает, загрузите его в управлении приложением (раздел Настройки → Загрузка архива для ODR). После загрузки отправьте архив на модерацию. Обратите внимание, что вы не сможете загрузить новый файл, пока модерация не завершится.
Если модерация пройдена, появится такое уведомление:
После выхода новой версии приложения вы увидите уведомление о том, что ваша игра доступна в приложении.
В случае отказа вы получите комментарий модератора.
В зависимости от сроков выхода новой версии приложения ВКонтакте в AppStore модерация корректно работающего архива занимает около двух недель.
Если вам необходимо обновить архив, вы загружаете новую версию в раздел Загрузка архива для ODR iOS.
Если ваше приложение останавливается на экране загрузки, скорее всего, не вызывается VKWebAppInit и необходимо проверить работу CORS.
Попросите главного администратора добавить вас в список Кто может загружать архив. После этого блок появится в настройках приложения, администратором которого вы являетесь. Если вы главный администратор и не видите блок для загрузки архива, напишите в Поддержку.
Список Кто может загружать архив находится в разделе Мои приложения → Редактировать → Настройки → Загрузка архива для ODR.
Разработка приложений в VK mini apps
Почему надо смотреть в сторону разработки приложений для работы в VK? У меня за спиной много лет фронтенд-разработки для массовых сервисов, и то, что сейчас предлагает разработчику социальная сеть «ВКонтакте» — быстрый и эффективный способ построить еще один канал коммуникации с действительно большой аудиторией. Ниже расскажу, в чем идея VK mini apps, какие технологии использовать при разработке приложения и на что стоит обратить внимание.
Платформа VK mini apps
«ВКонтакте» предоставляет сторонним разработчикам возможность писать веб-приложения и размещать их в каталоге приложений и/или продвигать внутри сети. Пользователям приложений не нужно скачивать отдельные нативные приложения из Google Play/App Store, функционал выбранного приложения доступен внутри пользовательской сессии основного приложения во «ВКонтакте» или через браузер, на сайте соцсети. В социальной сети есть подробная инструкция о том, как начать работу на платформе VK mini apps.
Инфраструктура приложения VK mini app
Приложение VK mini app представляет собой обычный веб-ресурс, располагаемый по определенному адресу. Его мы должны разместить в «Панели управления приложением» социальной сети.
«ВКонтакте» позволяет разместить три версии приложения:
Ваш веб-ресурс встраивается в приложение «ВКонтакте» через обычное WebView, при открытии с десктопа — через iFrame. Поэтому необходимо держать в уме, что часть функционала JavaScript может быть недоступна, необходимо тщательное тестирование.
После тестирования веб-приложения на разных устройствах его можно отправлять на модерацию, чтобы оно могло быть размещено в каталоге. Заявка на модерацию отправляется из «Панели управления приложением». Объявленный «ВКонтакте» срок модерации — 7 дней. Выкладки новых приложений (сервисов по терминологии «ВКонтакте») происходят раз в неделю по четвергам.
Есть подробная памятка о том, как создать правильное приложение. Рекомендую внимательно свериться с ней, прежде чем отдавать приложение на модерацию.
Разработка приложения VK mini app
Итак, приложение VK Mini Apps — это, по сути, обычное веб-приложение, которое встраивается в платформу посредством iFrame или WebView. Поэтому выбор технологий, на котором оно будет написано, за вами.
Однако для разработки фронтенда «ВКонтакте» рекомендует собственную библиотеку готовых компонентов VK UI, выполненную на React:
Это удобно — многие типовые компоненты уже готовы, осталось только встроить их в структуру вашей страницы или SPA.
Компоненты уже стилизованы согласно styleguide «ВКонтакте» — пользователю будет привычнее и удобнее работать с теми элементами управления и интерактивом, к которым он уже привык, находясь внутри социальной сети.
«ВКонтакте» не требует от разработчика следования какой бы то ни было жесткой архитектуре построения фронтенда — мы берем только то, что нужно, и модифицируем компоненты так, как нужно. Например, вы всегда сможете добавить глупому view-компоненту свой класс, свой обработчик событий, сделать вложенные компоненты любой глубины и так далее.
Существует достаточно подробная (правда, не совсем полная) документация по VKUI. Исходный код на GitHub: https://github.com/VKCOM/VKUI. Соответственно, максимально простая установка:
Обязательно нужно поставить следующий метатег в head верстки страницы вашего приложения, иначе на устройствах с iOS будет неправильно отображаться нативная навигация «ВКонтакте»:
Далее нам нужно просто встроить React-приложение на страницу.
Параметры открытия приложения
«ВКонтакте» сам добавляет параметры запуска к адресной строке, по которой открывается ваше приложение. Их список следующий: vk_user_id, vk_app_id, vk_are_notifications_enabled, vk_language, vk_ref, vk_access_token_settings, vk_group_id, vk_viewer_group_role, vk_platform, vk_is_favorite, sign. То есть фрейм с вашим приложением откроется примерно с похожим адресом: youvkapp.ru/?vk_access_token_settings=notify&vk_app_id=888888&vk_are_notifications_enabled=1&vk_is_app_user=1&vk_is_favorite=1&vk_language=ru&vk_platform=desktop_web&vk_ref=other&vk_user_id=111111&sign=fsdfsdgfgfiuoitu8345u34j
Это позволяет уже при старте приложения иметь достаточно полный набор данных, извлеченных из url, чтобы начать персональное взаимодействие с конкретным пользователем. Например, говорить с ним на одном языке — русском, английском или каком-то другом, либо попросить о включении своих уведомлений.
Дополнительные параметры в этот список «ВКонтакте» на ноябрь 2019 года включать не планирует. Однако в url можно передать произвольный хэш, например: youvkapp.ru#custom_param
Роутинг
Если в приложении больше одного экрана (я думаю, это как раз ваш случай), нужен переход между экранами. За показ того или иного экрана отвечает state нашего React-приложения. Что касается организации View, то «ВКонтакте» предлагает два способа: смена активного компонента VKUI View и VKUI Panel.
Каждый View отвечает за свой пользовательский сценарий: основной, дополнительный, вызов справочников, страницы поиска и другие. Внутри View содержится свой набор Panel — это конкретные шаги (экраны) в пользовательском сценарии. Абстрактно это выглядит так:
В state в activePanel мы прописываем id того элемента, который нужно показать.
Верстка и компоненты
Теперь можно посмотреть типичную страницу внутри Panel, созданную с помощью компонентов VK UI.
Библиотека VK UI предоставляет практически полный набор компонентов, необходимых для построения интерактивного приложения: всевозможные элементы форм, попапы, стилизованные алерты, галереи, панели навигации, спиннеры, аватары, футеры и так далее.
Как видно, появился ещё один пакет vkontakte:
Можно воспользоваться удобным менеджером по подбору нужной иконки.
Основное правило — правильно использовать компонент либо собственную верстку шапки. В правой части шапки нативное приложение «ВКонтакте» размещает кнопки управления.
Стоит обратить внимание: «ВКонтакте» заявляет, что компоненты могут отображаться на десктопах не совсем адекватно. Однако их можно стилизовать, добавляя свои css-правила. Например, так была стилизована анимация переходов между панелями в одном приложении:
Эти стили подключаются в общем потоке стилей, подключаемых к вашему приложению.
Библиотека VK Connect
Библиотека VK Connect предоставляет доступ к широким возможностям как самой сети «ВКонтакте», так и к возможностям устройства, если мы работаем из-под мобильного приложения. Для ее подключения нужно установить пакет vkontakte/vk-connect: npm i —save-dev vkontakte/vk-connect.
Среди многочисленных возможностей VK Connect — сканирование QR-кода, получение геопозиции, вызов карточки контактов. Также есть широкие возможности по использованию возможностей соцсети: включение-выключение уведомлений, публикация записей на стене, авторизация сообщества, подписка на сообщения. Их нужно использовать с умом: например, существует ограничение на количество уведомлений — не более одного в сутки. Есть отдельные рекомендации по уведомлениям. Полный список возможностей представлен в документации.
Чтобы наше приложение вообще начало работу, нужно сначала выполнить инициализацию:
Все дальнейшее взаимодействие с библиотекой происходит похожим образом. Методом connect.send вызываем нужное действие и слушаем ответы. Для этого мы должны подписаться на события:
В объекте detail возвращается type — название типа события, ответ на которое мы ждем, и data — набор данных. В примере выше мы слушаем ответ на запрос connect.send(«VKWebAppGetUserInfo», <>), который должен вернуть данные о пользователе приложения: имя, пол, дату рождения, место проживания, ссылку на картинку аватара в соцсети.
«ВКонтакте» не гарантирует поддержку всех событий на всех устройствах (iOS, Android, Web), поэтому лучше делать проверку такой поддержки перед исполнением кода:
VK Connect также обеспечивает поддержку запросов к API VK, если нужно что-то большее, чем может предоставить сама библиотека VK Connect:
VK Pay
VK Pay — это, по сути, удобный фронтенд для использования онлайн-сервиса оплаты с помощью Деньги Mail.Ru. Для вызова платежной формы достаточно открыть платежное окно с помощью вызова в библиотеке VK Connect:
Таким образом, можно продавать ваши услуги и товары, используя внутреннее платежное средство в сети «ВКонтакте». Подробнее в официальной документации.
Отладка
События VK Bridgе, которые можно использовать в десктопной версии, в справочнике имеют пометку Web. Самый простой способ протестировать получение таких событий — включить десктопную версию мини-приложения и перехватывать их прямо в браузере. К сожалению, не все события поддержаны на Web-платформе, например, вызвать событие для считывания QR-кода не получится.
Для отладки мини-приложений на мобильных устройствах удобно использовать консоль Eruda. Пример её работы можно посмотреть в этом мини-приложении, иконка в правом нижнем углу открывает полноценную отладочную консоль прямо внутри приложения.
Консоль Eruda встроена в библиотеку create-vk-mini-app, которая используется для быстрого создания приложений из шаблона.
Если вы планируете разместить мини-приложение в каталоге для iOS, вам нужно выполнить приведённые ниже инструкции:
Для организации ресурсов используется технология ODR (On-Demand Resources), разработанная компанией Apple. Её должны применять не только приложения ВКонтакте, но и любые другие приложения, представленные в App Store и содержащие встроенные сервисы. Но разработчику мини-приложений не нужно самостоятельно в этом разбираться, достаточно отправить нам ресурсы, а всю остальную работу берёт на себя ВКонтакте.
Чтобы отлаживать работоспособность архива в ODR-режиме, в iOS-клиенте, начиная с версии 6.47, появилась возможность протестировать загруженный архив.
На Android-устройствах мы рекомендуем использовать Сhrome Remote debugging. В iOS, к сожалению, подобной функции нет.
Просматривать веб-контент в Android-приложениях можно в WebView.
Чтобы открытое на мобильном устройстве мини-приложение отображалось в WebView:
Если под рукой нет Android-устройства — на помощь придёт библиотека vk-bridge-mock, позволяющая эмулировать получение данных при работе на компьютере. При вызове событий библиотеки вам вернутся тестовые данные, которые можно использовать для отладки. Установите пакет:
Затем импортируйте объект в файле index.js:
И используйте методы объекта bridge:
В ответе вернутся тестовые данные, например, такие:
Если вам нужно изменить тестовые данные, например, чтобы посмотреть как будет вести себя приложение, если пользователь не указал город — можно их переопределить:
Библиотека поддерживает работу со следующими событиями:
Чтобы протестировать конкретную версию мини-приложения, нужно указать для неё URL и пользователей, которые смогут видеть мини-приложение по этому URL.
Чтобы открыть мини-приложение для всех его администраторов:
Эта версия мини-приложения будет доступна всем администраторам приложения. Остальные пользователи не смогут видеть мини-приложение по URL, указанному для режима разработки, но смогут по URL, заданному в этом же блоке чуть выше.
Чтобы открыть мини-приложение только для некоторых пользователей, нужно создать группу тестировщиков. Это может сделать главный администратор приложения или администратор с полным доступом.
Мини-приложение будет доступно только тем пользователям, которые входят в группу тестировщиков. При этом тестировщику не обязательно быть администратором.
Группы можно удалять или редактировать, то есть менять состав участников и URL.
Всего можно создать 25 групп.
Максимальный размер одной группы: 1000 пользователей.
Пользователь не может быть участником двух групп одновременно.
Как отключить рекламу и активировать режим невидимки в официальном приложении ВКонтакте для Android
Многим людям не нравится официальное приложение «ВКонтакте» на Android из-за обилия рекламы и отсутствия возможности сидеть в соцсети незаметно от своих онлайн-друзей. В сторонних клиентах «ВКонтакте», как правило, вырезана реклама и имеется режим «невидимки», однако нет игр, некоторых новых функций официального клиента, а также присутствует риск компрометации пароля.
Как выяснилось, в официальном приложении «ВКонтакте» для Android спрятано несколько полезных функций: копирование всех сообщений в кэш, отключение рекламы и «невидимка». Получить доступ к ним довольно просто — нужно активировать в приложении режим отладки, а затем набрать на телефоне определенную комбинацию символов.
1. Установите приложение «ВКонтакте» из Google Play https://play.google.com/store/apps/details?id=com.vkontakte. и залогиньтесь в него (если не сделали это ранее).
3. Откроется бокс с изображением «собаки Дурова». Нажмите на нее несколько раз (никаких видимых изменений не будет).
4. Откройте стандартный номеронабиратель и наберите сервисный код *#*#856682583#*#*.
5. Откроется страница «ВК — отладка». На ней показана куча информации, которая понятна только разработчиками приложений, однако имеются три пункта, которые могут вам пригодиться.
Во-первых, вы можете скачать всю переписку в кэш.
Во-вторых, можно отключить рекламные баннеры и записи, а в-третьих, активировать режим «невидимки», при котором вы можете пользоваться соцсетью, но на вашей странице будет показано, будто вас нет онлайн.
Заметьте, ничего противозаконного вы не совершили, а просто активировали официально доступные возможности приложения. Этот «хак» работает на смартфонах даже без root-доступа, но на устройствах Samsung со стандартной оболочкой TouchWiz после ввода сервисного кода ничего не происходит. Это связано с тем, что в TouchWiz вшита поддержка нестандартных сервисных кодов, а тот, который используется приложением «ВКонтакте», на них не работает.
Найти сервис-код для «ВКонтакте» на смартфонах Samsung можно с помощью приложения Secret Codes. https://play.google.com/store/apps/details?id=fr.simon.marqu.
На iOS есть аналог, но только с джейлом. Твик VKSettings
Для владельцев тачвиза
Просто найдите в списке VK
странно, у меня в сервисном меню нет именно двух последних пунктов. хотя мне как-то похер на рекламу
чет у меня не какой рекламы в приложении нет
Любимица
Про «разводняк» в интернете
Брешь в системе
Сходство
Каждый раз
Колдовство!
Первый день на работе
Щенок банхара, будущий монгольский волкодав, знакомится с подопечными.
Несколько смуглых зайцев решили побить контролёра в автобусе, но что то пошло не так
Конфликт начался после того, как контролер заметила пассажиров, не оплативших проезд. Работница транспорта решила не выпускать безбилетников из автобуса, пока они не заплатят. В итоге в салоне произошла массовая потасовка.
Очевидцы утверждают, что кто-то из гостей города ударил женщину, однако за нее заступились другие пассажиры и задали трёпку безбилетникам. На кадрах видно, как участников конфликта высаживают из автобуса без верхней одежды. Один из них очень расстроен и говорит, что пожалуется на своих обидчиков господам полицейским.
Спасибо трактористам!
Свое место на парковке
В Нефтеюганске автоледи перегородила выезд мужчине с детьми в салоне авто, якобы из-за того, что он занял ее парковочное место.