Страницы

Поиск по вопросам

Показаны сообщения с ярлыком mobile-development. Показать все сообщения
Показаны сообщения с ярлыком mobile-development. Показать все сообщения

четверг, 9 апреля 2020 г.

Как корректно проверить доступность Интернет?

#c_sharp #windows_phone_8 #mobile_development #windows_phone_81 #windows_10_mobile

                    
Как корректно проверить доступность сети Интернет в мобильном приложении?

Включен ли доступ в Интернет на телефоне, и, даже если включен, доступна ли сеть
(есть возможность загрузить или передать информацию через сеть).
    


Ответы

Ответ 1



var p = NetworkInformation.GetInternetConnectionProfile(); if (p != null && p.GetNetworkConnectivityLevel() >= NetworkConnectivityLevel.InternetAccess) { // ... }

пятница, 13 марта 2020 г.

Android: ссылка на контакт Skype в TextView

#java #android #skype #mobile_development #android_intent


Как сделать ссылку на контакт Skype в TextView?

TextView распознает ссылки типа URL, e-mail и т.п., но не распознает ссылки на Skype.

Пробовал: skype:мой_id, tel:мой_id, call:мой_id — не работает. 

Информацию по данному вопросу в интернете не нашел.
Есть ли вообще в Android возможность запуска Skype по ссылке, на подобии как в Web??
    


Ответы

Ответ 1



Intent для запуска скайпа с нужной url создаётся так: Uri skypeUri = Uri.parse(mySkypeUri); Intent intent = new Intent(Intent.ACTION_VIEW, skypeUri); intent.setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Поддерживаемые форматы URL'ок описаны тут. Далее надо сделать линки скайпа в тексте кликабельными и ловить клики, что бы перейти в скайп. Как сделать перехват кликов по ссылкам описано тут, а что бы сделать ссылками то что по формату TextView ссылкой не считает надо завернуть эти ссылки в тэг skype:username и текст с этими ссылками пропустить через метод Html.fromHtml.

Ответ 2



Это можно сделать с помощью Intent. Однако необходимо учитывать, что В разных версиях Skype различаются имена пакетов; Skype может быть вообще не установлен на данном конкретном девайсе. Поэтому необходимо выполнять соответствующие проверки. Подробный пример реализации можно посмотреть на Хабре.

пятница, 27 декабря 2019 г.

Реализация контактной книги с проверкой базы контактов

#mobile_development #мобильные_приложения #контакты


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


Ответы

Ответ 1



Получать список всех контактов с сервера не безопасно. Остаётся только отправить контакты на сервер. Это не такая уж и большая проблема, даже если у вас 1000 контактов, то их номера телефонов будут весить всего ~10КБ. Отправьте один раз, сохраните ответ в кэш и обновляйте при изменении контактов либо по времени

Ответ 2



Как реализовал бы я. Получаем список контактов в мобильном приложении. Кодируем каждый контакт в hash-строку (например, с солью) Заносим в БД приложения список контактов и hash-строки Отправляем массив на сервер На сервере имеющиеся контакты кодируем аналогично (например, с солью) в hash-сткроки. Сравниваем hash-строки пользователя и hash-строки на сервере Выводим пересечение и возвращаем пользователю Сравниваем пересечение с данными в БД приложения

воскресенье, 22 декабря 2019 г.

Работа в фоновом режиме (Xamarin)

#c_sharp #net #xamarin #mobile_development


Подскажите как можно решить данный кейс для iOS 9+, Android 4.4+ и WP 8.1+.

Программа раз в день должна проверять счёт пользователя и если он меньше 30 руб.
то уведомлять.

Как реализовать уведомления на трех платформах я разобрался.

А вот заставить программу работать постоянно (как сервис в Windows) не ясно и получиться
ли это реализовать кроссплатформенно?

P.S. Пишу свое первое приложение для мобилок. 
    


Ответы

Ответ 1



То, что Вы хотите, называется Push Notification-ом. То, что Вы указали в примере - это локальное уведомление, по сути, c таймером на исполнение. Указали тайтл, текст, время, и вуаля, заданный текст показался в нужное время. В Вашем случае, такой вариант не подойдет просто потому, что счёт пользователя, как я понял - некое хранилище средств, лежащее извне, и для его проверки, понадобится исполнение кода приложения, а значит, приложение должно быть запущено. В случае с Пушем все проще, так как тут даже не нужна работа приложения, Вам нужен сервер который скажет, что нужно отправить уведомление. Если я ошибаюсь, и его счёт сугубо виртуальная валюта, которая пополняется со временем - рассчитать время заполнения или растраты - не трудно, достаточно знать его потребление на момент изменения. Что касается первого варианта, если счета пользователя - некое подобие кошельков на Вашем сервере, то Вам понадобится только промежуточный сервис отправки подобных уведомлений, к примеру: FCM (Android), APNS (iOS), WNS (Windows). Ваш сервер через подобный сервис будет сам уведомлять пользователя о малом количестве средств. Можете прочесть более подробно тут: Основы успешной реализации push-уведомлений для мобильных приложений

Ответ 2



https://xamdev.ru/background-task-xamarin/ Пишите отдельный код для каждой платформы, затем используете технологию отсюда https://metanit.com/sharp/xamarin/12.3.php чтобы объединить все вместе

среда, 11 декабря 2019 г.

Организация ресурсов в android application

#java #android #rest #mobile_development


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

Как мне лучше организовать хранение этих изображений что бы они изначально были в
приложении, а не что бы приходилось их парсить при работе? Там почти полторы тысячи
картинок объемом общим около 10 мбайт.
    


Ответы

Ответ 1



Создайте обработчик, который будет сопоставлять картинку соответствующей компании и отображать её в вашем активити, а сами картинки храните в ресурсах приложения. Например: У вас есть ресурсы с картинками под именами, ну например 0001.png, 0002.png и т.д., а ваш скрипт отдает приложению json подменяя внешнюю ссылку на картинку компании ссылкой на ваш файл с картинкой, примерно так [{"company_pic":"http:\/\/companyname.ru\/ui\/upload\/01fc8bca9852de248af358fb043a6f9e.png",...}] заменяем на [{"company_pic":"0001.png",...}] Далее парсите json в вашем приложении c локальными ссылками.

суббота, 22 июня 2019 г.

Как корректно проверить доступность Интернет?

Как корректно проверить доступность сети Интернет в мобильном приложении?
Включен ли доступ в Интернет на телефоне, и, даже если включен, доступна ли сеть (есть возможность загрузить или передать информацию через сеть).


Ответ

var p = NetworkInformation.GetInternetConnectionProfile(); if (p != null && p.GetNetworkConnectivityLevel() >= NetworkConnectivityLevel.InternetAccess) { // ... }

воскресенье, 2 июня 2019 г.

Android: ссылка на контакт Skype в TextView

Как сделать ссылку на контакт Skype в TextView?
TextView распознает ссылки типа URL, e-mail и т.п., но не распознает ссылки на Skype.
Пробовал: skype:мой_id, tel:мой_id, call:мой_id — не работает.
Информацию по данному вопросу в интернете не нашел. Есть ли вообще в Android возможность запуска Skype по ссылке, на подобии как в Web??


Ответ

Intent для запуска скайпа с нужной url создаётся так
Uri skypeUri = Uri.parse(mySkypeUri); Intent intent = new Intent(Intent.ACTION_VIEW, skypeUri); intent.setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Поддерживаемые форматы URL'ок описаны тут
Далее надо сделать линки скайпа в тексте кликабельными и ловить клики, что бы перейти в скайп. Как сделать перехват кликов по ссылкам описано тут, а что бы сделать ссылками то что по формату TextView ссылкой не считает надо завернуть эти ссылки в тэг skype:username и текст с этими ссылками пропустить через метод Html.fromHtml

вторник, 12 февраля 2019 г.

Работа в фоновом режиме (Xamarin)

Подскажите как можно решить данный кейс для iOS 9+, Android 4.4+ и WP 8.1+
Программа раз в день должна проверять счёт пользователя и если он меньше 30 руб. то уведомлять.
Как реализовать уведомления на трех платформах я разобрался
А вот заставить программу работать постоянно (как сервис в Windows) не ясно и получиться ли это реализовать кроссплатформенно?
P.S. Пишу свое первое приложение для мобилок.


Ответ

То, что Вы хотите, называется Push Notification-ом. То, что Вы указали в примере - это локальное уведомление, по сути, c таймером на исполнение. Указали тайтл, текст, время, и вуаля, заданный текст показался в нужное время. В Вашем случае, такой вариант не подойдет просто потому, что счёт пользователя, как я понял - некое хранилище средств, лежащее извне, и для его проверки, понадобится исполнение кода приложения, а значит, приложение должно быть запущено. В случае с Пушем все проще, так как тут даже не нужна работа приложения, Вам нужен сервер который скажет, что нужно отправить уведомление.
Если я ошибаюсь, и его счёт сугубо виртуальная валюта, которая пополняется со временем - рассчитать время заполнения или растраты - не трудно, достаточно знать его потребление на момент изменения. Что касается первого варианта, если счета пользователя - некое подобие кошельков на Вашем сервере, то Вам понадобится только промежуточный сервис отправки подобных уведомлений, к примеру: FCM (Android), APNS (iOS), WNS (Windows). Ваш сервер через подобный сервис будет сам уведомлять пользователя о малом количестве средств.
Можете прочесть более подробно тут: Основы успешной реализации push-уведомлений для мобильных приложений