Мобильная платформа. Что можно еще?

Публикация № 267538

Программирование - Практика программирования

мобильная платформа мобильные телефоны Android андроид tel sms tel: sms:

38
Что еще можно сделать на мобильной платформе, кроме набора номера и смс?

Добрый день.

Давно я ничего не писал про мобильную платформу. Давайте что-то напишу.

Например, про то, как можно расширить немного функционал мобильной платформы.

Все мы знаем про такие конструкции:

&НаКлиенте
Процедура Позвонить(Команда)
    ЗапуститьПриложение("tel: +7111111111");
КонецПроцедуры

&НаКлиенте
Процедура ОтправитьСМС(Команда)
    ЗапуститьПриложение("sms: +7111111111");
КонецПроцедуры

Однако не все знаю про такие:

&НаКлиенте
Процедура ОтправитьСМС(Команда)
    ЗапуститьПриложение("sms: +7111111111,+555555555");
КонецПроцедуры

Подготовить сообщение нескольким абонентам

ЗапуститьПриложение("geo:46.4984,30.7234?z=19");

В этом случае откроется нормальная карта гугла, или яндекса. Координаты взять можно из специального объекта 1С. Подробней тут (//infostart.ru/public/256078/)

ЗапуститьПриложение("file:///sdcard/c360_debug.txt");

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

ЗапуститьПриложение("https://play.google.com/store/apps/details?id=com.viber.voip");

Откроет программу гугл плей, или браузер, в зависимости от типа ссылки.

ЗапуститьПриложение("mailto:ggg@ggg.com,ffff@kkk.er");

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

Ну и т.д. смотрите справку по Андроиду, вот вам ориентир для поиска: Uri.parse("smsto:").

А теперь самое интересное – 1С обещали в 8.3.5 сделать возможность подстановки текста смс. А что это значит? Сейчас они не возвращают никакой объект, хотя функция Uri.parse() – возвращает объект с которым можно работать. В случае смс – туда можно отправить текст смс. А значит, наверноеJ, в будущем – можно будет с этими объектами работать как в андроиде, т.е. добавить текст в почту и т.д.

38

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. sergei198821 26 25.03.14 18:07 Сейчас в теме
Доброе время суток! Случайно не знаете команды для работы со встроенной камерой на андроиде, и можно подключится к ней и выводить результат например в элемент "Картинка" ?
2. DitriX 1649 25.03.14 18:20 Сейчас в теме
(1)
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Фото = Новый СредстваМультимедиа;
Если Фото.ПоддерживаетсяФотоснимок() Тогда
Данные = Фото.СделатьФотоснимок();
Если Данные = Неопределено Тогда Возврат КонецЕсли; //Фото не сделали
Сообщить(Данные.РасширениеФайла + " " + Данные.ТипСодержимого);
Фото = ПоместитьВоВременноеХранилище(Данные.ПолучитьДвоичныеДанные()); //Реквизит формы строковый, вынесен на форму и поставленно тип поля - картинка
Иначе
Сообщить("Данное устройство не поддерживает создание фото!")
КонецЕсли;
КонецПроцедуры
clev; unlstu; +2 Ответить
5. ksvd 03.04.14 17:21 Сейчас в теме
(2) Попробовал - ошибка: Тип не определен (СредстваМультимедиа)
1С:Предприятие 8.3 (8.3.4.437)
Управление небольшой фирмой для мобильной работы (1.1.1.1)
Назначение использования = Мобильное устройство

Куда посмотреть?
6. DitriX 1649 03.04.14 18:57 Сейчас в теме
(5)полный код ошибки дайте
7. ksvd 04.04.14 09:50 Сейчас в теме
(6) Вот

{Документ.Заказ.Форма.ФормаДокумента.Форма(223,15)}: Тип не определен (СредстваМультимедиа)
Фото = Новый <<?>>СредстваМультимедиа; (Проверка: Тонкий клиент)
8. DitriX 1649 04.04.14 11:36 Сейчас в теме
(7) ksvd, Фото = Новый <>СредстваМультимедиа; (Проверка: Тонкий клиент)
Вот ошибка :)

Напишите этот кусок в контексте мобильного клиента:
#Если МобильныйКлиент Тогда
//А между ними вставьте тот код. Или отключите проверку тонкого клиента.
#КонецЕсли
9. ksvd 04.04.14 12:11 Сейчас в теме
(8) Спасибо! Ошибка при компиляции пропала, но и не заходит туда.
В этом коде говорит - Не мобильный клиент.
Назначение использования = Мобильное устройство - это недостаточно?

&НаКлиенте
Процедура Сфотографировать(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если МобильныйКлиент Тогда
Фото = Новый СредстваМультимедиа;
Если Фото.ПоддерживаетсяФотоснимок() Тогда
Данные = Фото.СделатьФотоснимок();
Если Данные = Неопределено Тогда Возврат КонецЕсли; //Фото не сделали
Сообщить(Данные.РасширениеФайла + " " + Данные.ТипСодержимого);
Фото = ПоместитьВоВременноеХранилище(Данные.ПолучитьДвоичныеДанные()); //Реквизит формы строковый, вынесен на форму и поставленно тип поля - картинка
Иначе
Сообщить("Данное устройство не поддерживает создание фото!")
КонецЕсли;
#Иначе
Сообщить("Не мобильный клиент!")
#КонецЕсли
КонецПроцедуры
10. DitriX 1649 04.04.14 12:59 Сейчас в теме
(9) ну так код надо запускать на телефоне :)
11. ksvd 04.04.14 13:13 Сейчас в теме
(10) Пятница - хороший день. Но все-таки
Вот например в этом случае у меня на смартфоне заголовок кнопки = 2
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если МобильныйКлиент Тогда
Элементы.Сфотографировать.Заголовок = "1";
#Иначе
Элементы.Сфотографировать.Заголовок = "2";
#КонецЕсли
КонецПроцедуры
3. flyer 217 26.03.14 07:54 Сейчас в теме
для IOS как все это отработает? надо будет проверить.
4. DitriX 1649 26.03.14 11:58 Сейчас в теме
(3) без понятия :) проверите и расскажите :)
12. ksvd 04.04.14 15:29 Сейчас в теме
Что-то я в справке не нашел
#Если МобильныйКлиент Тогда
есть
#Если МобильноеПриложениеКлиент Тогда

с ним код выполняется, но до
Данные = Фото.СделатьФотоснимок();
на это говорит "В 1С:Enterprise произошла ошибка" и программа закрывается
13. DitriX 1649 04.04.14 16:21 Сейчас в теме
(12) действительно, по памяти писал, ошибся.
Вылеты бывают, на некоторых вообще ничего не происходит. Попробуйте поменять версию мобильного приложения на более новую или старую. Или на другом устройстве попробуйте.
14. Dimon93dimon 07.04.14 18:50 Сейчас в теме
(12) ksvd, попробуй сначал проверять, поддерживает ели устрйоство фотоснимок
# Если МобильноеПриложениеКлиент  Тогда	
		Если СредстваМультимедиа.ПоддерживаетсяФотоснимок() Тогда
			Хранилище = СредстваМультимедиа.СделатьФотоснимок();
	Иначе
			Сообщить("На данном устройстве не поддерживается фотосъемка!");
		КонецЕсли;
		
	# КонецЕсли 
Показать
15. ksvd 08.04.14 09:38 Сейчас в теме
(14) Dimon93dimon, Так в примере такая проверка есть.
На двух HTC проверял разных. Версию приложения еще попробую поменять
16. DitriX 1649 08.04.14 11:51 Сейчас в теме
(15) проверка указывает на возможность, а не на то, что фото 100% сделается.
У нас на ТСД - проверку тоже проходит, но фото не делает, т.е. как будто ничего не происходит
17. TitanLuchs 98 11.04.14 16:57 Сейчас в теме
А 1С уже штатно позволяет отсылать СМСки со смартфонов? Что-то я отстал от жизни...
18. DitriX 1649 11.04.14 17:49 Сейчас в теме
19. ksvd 24.04.14 17:45 Сейчас в теме
Только руки дошли проверить на другой платформе. Дело было в ней. На 8.3.4.17 все работает
20. Seeker 29.10.15 06:29 Сейчас в теме
добрый день,
А вы не знаете как проиграть выбранную мелодию?
21. Seeker 29.10.15 12:39 Сейчас в теме
получился вот такой код:

НовВз = Новый ЗапускПриложенияМобильногоУстройства();
	НовВз.Действие = "android.intent.action.VIEW";
	НовВз.Данные = "file:///storage/sdcard0/music/beep.mp3";
	НовВз.Тип = "audio/*";
	НовВз.Категория = "android.intent.category.DEFAULT";
	НовВз.Запустить(Истина);


НО, при исполнении такого кода, открывается проигрыватель и мелодия начинает играть.
Мне же необходимо что бы мелодия проигралась без открывания проигрывателя, так скажем в фоне.
22. DitriX 1649 29.10.15 18:14 Сейчас в теме
(21) Seeker, ну тогда только через утилиты. По другому не вижу вариантов.
23. Seeker 30.10.15 07:27 Сейчас в теме
(22) через какие утилиты можно по подробней?
25. erutan 49 30.06.16 12:26 Сейчас в теме
Здравствуйте!
Не могли бы Вы дать небольшой совет.
пишу следующее

&наклиенте
процедура сообщитьконтакты(команда)
мк=новый менеджерконтактов;
выборка=мк.найтиконтакты();//без параметров - чтобы веонуть всех
для каждого стр из выборка цикл
сообщить (стр.имя);
конец цикла;
конецпроцедуры


Возвращает ничего (количество 0)
чтяднт?

Спасибо.
26. DitriX 1649 30.06.16 17:45 Сейчас в теме
(25) erutan, платформа для разработчиков стоит?
27. erutan 49 01.07.16 00:54 Сейчас в теме
(26) конкретно это тестировал на тестовой сборке на "живом" телефоне.

Платформа для разработчиков - это где подгружается xml-файл с веб-сервера? Разворачивал на виртуалке, но что-то с отладкой мобильного приложения не разобрался. Вечером попробую еще подумать.
28. erutan 49 02.07.16 08:16 Сейчас в теме
(26) получилось как-то вот так

&НаКлиенте
Процедура СообщитьКонтакты(Команда)
	#Если МобильноеПриложениеКлиент Тогда
	МК = Новый МенеджерКонтактов;
    //ЛокальныеКонтакты = МК.ПолучитьЛокальнуюУчетнуюЗаписьКонтактов();
	выборка=МК.НайтиКонтакты();
	для Каждого стр из выборка цикл
		попытка
			текст=строка(текст)+" "+строка(мк.ПолучитьКонтакт(стр).ДанныеКонтакта.Имя);
		исключение
		конецпопытки;
	конеццикла;
	сообщить(текст);
	//сообщить(выборка.Количество());
	#КонецЕсли
КонецПроцедуры
Показать


Что меня печалит: если не делать попытка .. исключение .. конецпопытки, падает на строке "без имени", крича, что не объектный тип. То есть если у контакта имя не введено (не заполнено) - к этому полю вообще обратиться не выходит. Страннота.
29. DitriX 1649 03.07.16 22:09 Сейчас в теме
Оставьте свое сообщение