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

Опубликовал DitriX в раздел Программирование - Практика программирования

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

Добрый день.

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

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

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

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

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

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

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

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

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

В этом случае откроется нормальная карта гугла, или яндекса. Координаты взять можно из специального объекта 1С. Подробней тут (http://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, в будущем – можно будет с этими объектами работать как в андроиде, т.е. добавить текст в почту и т.д.

См. также

Лучшие комментарии

2. DitriX 25.03.2014 18:20
(1)
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Фото = Новый СредстваМультимедиа;
Если Фото.ПоддерживаетсяФотоснимок() Тогда
Данные = Фото.СделатьФотоснимок();
Если Данные = Неопределено Тогда Возврат КонецЕсли; //Фото не сделали
Сообщить(Данные.РасширениеФайла + " " + Данные.ТипСодержимого);
Фото = ПоместитьВоВременноеХранилище(Данные.ПолучитьДвоичныеДанные()); //Реквизит формы строковый, вынесен на форму и поставленно тип поля - картинка
Иначе
Сообщить("Данное устройство не поддерживает создание фото!")
КонецЕсли;
КонецПроцедуры
Ответили: (5)
+ 2 [ clev; unlstu; ]
# Ответить

Комментарии

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

Куда посмотреть?
Ответили: (6)
# Ответить
6. DitriX 03.04.2014 18:57
(5)полный код ошибки дайте
Ответили: (7)
# Ответить
7. ksvd 04.04.2014 09:50
(6) DitriX, Вот

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

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

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

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

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


НО, при исполнении такого кода, открывается проигрыватель и мелодия начинает играть.
Мне же необходимо что бы мелодия проигралась без открывания проигрывателя, так скажем в фоне.
Ответили: (22)
# Ответить
22. DitriX 29.10.2015 18:14
(21) Seeker, ну тогда только через утилиты. По другому не вижу вариантов.
Ответили: (23)
# Ответить
23. Seeker 30.10.2015 07:27
(22) DitriX, через какие утилиты можно по подробней?
Ответили: (24)
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл