Вы можете использовать Data
напрямую, нет необходимости использовать String
шестнадцатеричное преобразование.
func parseURINFC(_ data: Data) -> String? {
let prefix = data.prefix(1)
let rest = data.dropFirst(1)
switch prefix {
case Data(bytes: [0x00]):
return nil
case Data(bytes: [0x01]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "http://www." + restString
case Data(bytes: [0x02]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "https://www." + restString
case Data(bytes: [0x03]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "http://" + restString
case Data(bytes: [0x04]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "https://" + restString
case Data(bytes: [0x05]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "tel://" + restString
case Data(bytes: [0x06]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "mailto://" + restString
case Data(bytes: [0x07]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "ftp://anonymous:anonymous@" + restString
case Data(bytes: [0x08]):
guard let restString = String(data: rest, encoding: .utf8) else { return nil }
return "ftp://ftp." + restString
default:
return nil
}
}
Что касается префикса 006-
или 007-
, то по указанной вами ссылке ( http://austinblackstoneengineering.com/nfc-p2p-basics/ ) он недействителен. Событие после попытки конвертировать остальное с использованием UTF8 (как и должно быть, так как это URI) возвращает nil.
К API Google Maps получают доступ через JavaScript (любое управление сервером просто абстрагирует это далеко от Вас). В случае Вы описали, необходимо будет динамично произвести необходимый JavaScript, чтобы сказать картам API, что отобразиться.
Существует несколько управления сервером, чтобы сделать это, как это, но необходимо изучить, как сделать вещи одним способом (управление сервером) или другой (Google Javascript API).
Я рекомендую использовать Google API, так как он имеет больше образцов на всем протяжении сети, и можно использовать новые опции, реализованные Google прямо после того, как они выпускают их и не должны ожидать разработчика управления сервером, чтобы сделать это.
Как обычно, я указываю на ComponentOne, который имеет хороший контроль Silverlight для этого, которое может использовать карты Google или Microsofts Живые Карты, он использует Silverlight Глубокое Масштабирование для обработки его приятно: http://www.componentone.com/SuperProducts/MapsSilverlight/
Живой пример: http://demo.componentone.com/Silverlight/Factories/
(Я не от ComponentOne, просто удовлетворенный клиент), ;)
Я знаю, что можно сделать это сами со сценариями и другими путями, но его именно так намного большим количеством забавы использовать код allreade записанный.;)
Я рекомендовал бы использовать прямой JavaScript для создания Google Maps. Это является довольно прямым, и затем Вы сможете понять то, что продолжается негласно.
Google имеет некоторые довольно хорошие учебные руководства и документацию для подъема Вас и выполнения быстрого. После того как Вы добавляете тот к своему сайту, станет очень легко установить остальную часть настройки, в которой Вы нуждаетесь.
Смотрите на этот сайт для примеров.
BTW: Я нашел большое сообщение здесь, которое имеет пример о том, как сделать поиск хранилища. Работы действительно хорошо. Я рекомендую!!
http://blog.donnfelker.com/post/HOWTO-Build-a-Store-Locator-in-ASPNET.aspx
Проверьте этот пример: Управляемая данными Google Maps в ASP.NET
Я использовал Ajax ASP.NET для создания веб-сервиса, который является вызываемым от JavaScript. Веб-сервис говорит с базой данных и заполняет очень простой объект. Ajax ASP.NET, затем делает объект доступным для моего клиента JavaScript. Остальное легко: В клиенте Вы называете веб-сервис из JavaScript, считываете возвращенные данные и заполняете Google Maps, с помощью простых вызовов API Google Maps.
Проверьте сайт в тексте ссылки
Пожалуйста, попробуйте мой контроль GoogleMaps для ASP.NET