Я езжу на конференции и встречи, чтобы показывать людям свои приложения, и в конце хорошего разговора люблю вручить NFC-метку с промокодом. Подносишь метку, открывается App Store с уже подставленным кодом, и приложение у тебя.
Проблема была не в метках, а в количестве. Каждый промокод свой, значит каждой метке нужна своя ссылка, а мне их требовалось несколько сотен. Записывать по одной в приложении на таком масштабе не вариант. Поэтому я и встроил в NFC.cool Tools пакетную запись из CSV: список я собираю на Mac, выгружаю в CSV, переношу файл на телефон и потом подношу метку за меткой, пока приложение идёт по строкам. К этому моменту я записал так уже сотни меток.
Дальше весь процесс целиком, от таблицы до последней метки. Точно так же он работает для ссылок на товары, серийных номеров, данных Wi-Fi и всего остального, что помещается в ячейку таблицы.
Что делает пакетная запись из CSV
Ты отдаёшь приложению файл CSV, и каждая строка становится отдельной меткой. Приложение показывает предпросмотр того, что попадёт на каждую метку, ты нажимаешь «Начать запись» и подносишь метки одну за другой. Каждая записанная строка удаляется из файла, поэтому на экране всегда видно то, что осталось. Остановиться можно в любой момент и продолжить позже, хоть через несколько дней.
Если ты никогда не записывал NFC-метки, начни с моего руководства по записи меток с iPhone. Этот текст про то, как записать их много.
Шаг 1: собери таблицу на компьютере
Открой Numbers, Excel или Google Таблицы и собери список на компьютере. Это гораздо быстрее, чем возиться на телефоне, да и таблица может собрать ссылки за тебя.
Самая простая раскладка укладывается в один столбец и по строке на метку. В каждой строке лежит ровно то, что попадёт на одну метку. Столбец со ссылками на товары выглядит так:
https://example.com/products/1001
https://example.com/products/1002
https://example.com/products/1003Если значения отличаются только номером или идентификатором, пусть столбец соберёт формула. Введи первое значение, протяни вниз, и список готов, какой бы длины он ни был. Если идентификаторы уже лежат в файле, открой его в таблице и допиши постоянную часть формулой.
Приложение смотрит на начало каждого значения и подбирает подходящий тип записи:
Ссылка (
https://,http://илиwww.) становится записью URL. Подносишь метку, и открывается браузер.tel:,mailto:,sms:иgeo:превращаются в соответствующее действие, поэтому метка может набрать номер, начать письмо или открыть точку на карте.WIFI:T:WPA;S:MyNetwork;P:secret;;становится записью Wi-Fi в том же формате, что и у QR-кода с Wi-Fi. Есть нюанс: в этой строке есть точки с запятой, поэтому приложение решит, что файл разделён точками с запятой, и разобьёт строку на куски. Поставь в приложении разделителем запятую, и строка останется целой.shortcuts://запускает быструю команду iOS.Всё остальное записывается обычным текстом.
Держи каждое значение в одной строке. Файл читается построчно, поэтому карточка контакта из нескольких строк расползётся по нескольким меткам.
Два момента, за которыми стоит следить:
Никакой строки заголовков. Приложение считает содержимым любую непустую строку. Если в первой строке написано «URL», на первой метке окажется слово URL.
Пустые строки не мешают. Они пропускаются, как и пробелы вокруг значения.
Когда на метке нужно несколько записей
Иногда на одной метке должно лежать несколько вещей, например сайт, телефон и адрес почты на человека. Для этого добавь столбцы. В приложении выбери группировку по строкам, и каждая строка станет меткой, где каждой ячейке соответствует своя запись. Группировка по столбцам делает наоборот и превращает в метку каждый столбец, если таблица собрана иначе. Для файла из одного столбца есть настройка строк на метку, чтобы три строки легли на одну метку тремя записями.
Шаг 2: выгрузи файл в CSV
Файл CSV устроен как обычный текстовый файл. По строке на запись, а ячейки внутри строки разделены запятой, точкой с запятой или табуляцией. Если открыть такой файл в «Текстовом редакторе» или «Блокноте», увидишь ровно то, что увидит приложение. Таблица со ссылкой и телефоном на человека после выгрузки выглядит так:
https://example.com/anna,tel:+4915112345678
https://example.com/ben,tel:+4915198765432Оформление и формулы выгрузку не переживают, остаются только значения. Дальше о том, как получить такой файл из Numbers, Excel и Google Таблиц.
Numbers на Mac
Выбери «Файл», затем «Экспортировать в» и CSV.
Если в документе больше одной таблицы, Numbers спросит, делать по файлу на таблицу или объединить их. Тебе нужна одна таблица в одном файле.
Не включай «Включить имена таблиц». Иначе Numbers впишет имя таблицы в файл отдельной строкой, и эта строка попадёт на метку.
В «Дополнительных параметрах» оставь кодировку Unicode (UTF-8).
Нажми «Далее», задай имя файла и нажми «Экспортировать».
Про Numbers стоит знать две вещи. Каждая новая таблица идёт с затенённой строкой заголовков, и всё, что ты туда впишешь, выгрузится как обычная строка, так что оставь её пустой или удали. И Numbers всегда ставит запятые. Если внутри значения есть запятая, Numbers обернёт его в кавычки, а приложение эти кавычки не убирает. Поэтому при выгрузке из Numbers держи запятые вне значений.
Excel на Mac или Windows
Выбери «Файл», затем «Сохранить как» (в некоторых версиях это «Сохранить копию»).
Возьми формат CSV UTF-8 (разделители запятые) (.csv).
Excel сохранит только тот лист, который открыт, и предупредит, что оформление потеряется. Соглашайся, оформление не нужно.
Несмотря на название, Excel не всегда ставит запятые. Он берёт разделитель списка из региональных настроек системы, а на немецкой, французской, голландской и большинстве других европейских систем это точка с запятой, потому что запятая там уже занята под десятичный разделитель. Менять ничего не надо. NFC.cool сам определяет запятую, точку с запятой и табуляцию. Это же означает, что внутри значений могут быть запятые.
Google Таблицы
Выбери «Файл», затем «Скачать» и «Файл CSV (.csv)».
Выгружается только текущий лист и всегда с запятыми.
Перед переносом файла
Прежде чем отправлять файл на телефон, я один раз открываю его в текстовом редакторе. Нужно, чтобы была строка на метку, не было строки заголовков, не было кавычек вокруг значений и не было лишних запятых внутри файла, разделённого запятыми. Если значение обязано содержать запятую, выгружай из Excel с точками с запятой или возьми в Numbers выгрузку TSV с табуляцией и переименуй файл так, чтобы он заканчивался на .csv. На iPhone файл в любом случае должен заканчиваться на .csv, потому что по этому расширению фильтрует системный выбор файлов.
Шаг 3: перенеси файл на телефон
Подойдёт любой способ, который заканчивается в приложении «Файлы» на iPhone или в месте, куда дотягивается системный выбор файлов на Android.
AirDrop с Mac на iPhone, дальше «Сохранить в Файлы».
iCloud Drive: сохрани CSV в iCloud Drive на Mac, и он появится в «Файлах» на телефоне. Google Drive и Dropbox работают так же, «Файлы» умеют их открывать.
Отправь себе письмом и сохрани вложение.
Android: Quick Share с ноутбука, Google Drive или кабель USB. Приложение использует системный выбор документов, поэтому подойдёт любое место, которое он открывает.
Шаг 4: импортируй файл и посмотри предпросмотр
В NFC.cool Tools открой экран инструментов NFC и найди в разделе пакетных режимов пункт пакетной записи из CSV. На Android он тоже лежит в списке инструментов NFC. Нажми «Импортировать CSV» и выбери свой файл.
Приложение делает собственную копию файла. По мере записи строки удаляются именно из этой копии. Исходная таблица на компьютере остаётся как была, так что полный список всегда под рукой.
Как только файл выбран, приложение показывает, что оно определило: разделитель, число столбцов, режим группировки и то, сколько меток понадобится. Единственное число, которое я всегда проверяю, это байты на метку, то есть размер самого крупного сообщения в пачке. Сравни его со своими метками. NTAG213 вмещает 144 байта, NTAG215 504, а NTAG216 888. Короткая ссылка занимает около 50 байт, так что для ссылок годятся самые дешёвые метки. Записи Wi-Fi или карточке контакта подлиннее нужен 215 или 216. Если не уверен, какой у тебя чип, загляни в мой разбор типов NFC-меток.
Открой предпросмотр пачки и посмотри каждую метку с записями, которые на неё лягут. То, что ты там видишь, и будет записано.
Шаг 5: запиши стопку
Нажми «Начать запись» и поднеси первую метку к верхнему краю iPhone. Телефон завибрировал, значит метка записана, бери следующую. Записанная строка исчезает из списка, а счётчик показывает, сколько осталось.
Несколько вещей, которые произойдут и это нормально:
Окно сканирования пропадает через 60 секунд. Это ограничение iOS, а не сбой. Через пару секунд оно возвращается само, и ты продолжаешь с того же места.
Метка не записалась. Может, она заблокирована, а может, ты убрал её слишком рано. Строка остаётся в файле, приложение не перескакивает вперёд, а ты подносишь ту же метку снова или берёшь другую.
Надо прерваться. Закрывай приложение, занимайся другими делами, возвращайся завтра. Файл помнит, что осталось. На Android приложение само покажет незавершённую пачку и предложит продолжить.
Сотня меток при нормальном темпе занимает немного времени.
Что я понял, записав сотни меток
Сначала запиши две метки. Потом считай их приложением и проверь, что метка делает то, что нужно. И только после этого пиши остальные.
Самый ёмкий чип не обязателен. Для ссылок хватает NTAG213, а оптом он заметно дешевле. NTAG216 оставь под карточки контактов и Wi-Fi.
Блокируй метки, которые раздаёшь, или ставь на них пароль. Рядом с пакетной записью из CSV лежат пакетные режимы блокировки и установки пароля. Блокировка делает метку доступной только для чтения навсегда, а пароль позволяет менять её тебе и никому больше. Метки, которые уходят из твоих рук, стоит потом прогнать через один из этих режимов, чтобы содержимое никто не перезаписал.
Пакетная запись из CSV есть в NFC.cool Tools на iPhone и на Android. А если встретимся на конференции или встрече, попроси у меня метку.