Nano Hash - криптовалюты, майнинг, программирование

Готовое решение для анализа URL-адресов mailto в Cocoa?

У меня есть UIWebView в приложении для iPhone, и я хочу перехватывать структурированные mailto-URL, такие как mailto:[email protected]?subject=foo&body=bar, чтобы отображать MFMailComposeViewController внутри приложения вместо передачи URL-адреса в Mail.app.

Теперь было бы здорово, если бы все свойства MFMailComposeViewController автоматически устанавливались в соответствии с URL-адресом mailto. К сожалению, MFMailComposeViewController не принимает URL-адрес mailto, но требует установки отдельных свойств.

NSURL, по-видимому, тоже не очень помогает. Знаете ли вы какой-либо существующий код, чтобы мне не пришлось писать код синтаксического анализатора? ;)


Ответы:


1

Написал свое собственное решение: https://gist.github.com/667952 Это немного уродливо и, вероятно, не 100% защита от ошибок с точки зрения поддержки RFC, но пока синтаксис URL-адресов mailto находится под вашим собственным контролем, он работает нормально.

08.11.2010

2

Ортвин, спасибо за ваш код. Я разветвил его, чтобы добавить проверку метода canSendMail и добавить его как категорию MFMailComposeViewController. Пожалуйста, найдите его здесь: https://gist.github.com/788075

20.01.2011
  • Спасибо. Я согласен, вероятно, было бы лучше добавить это как категорию в MFMailComposeViewController. Еще чище было бы использовать параметр NSURL вместо NSURLRequest. 21.01.2011
  • Вы правы насчет NSURL, я его не заметил. :-/ Я исправил это. Спасибо. 21.01.2011

  • 3

    Вам нужен NSDataDetector.

    08.11.2010
  • Помимо того факта, что NSDataDetector — это только iOS 4.x, а мне нужна совместимость с OS 3.x, как мне его использовать для выполнения задачи? Я понимаю, что NSDataDetectors хорошо распознают, например. адреса электронной почты в произвольном тексте. Это не то, чего я хочу. У меня уже есть структурированная ссылка mailto, подобная следующей: mailto:[email protected]?subject=foo&body=bar. Так что это просто разделение параметров и заполнение полей. На самом деле это не имеет большого значения, но мне все еще было лень писать это снова, если оно уже существовало. 08.11.2010
  • @Ortwin: если он недоступен в вашей операционной системе, то вопрос о том, как его использовать, является спорным. Как в истории о Наполеоне и пушке. 08.11.2010
  • Не совсем. Мне было бы очень интересно, так как я еще не совсем знаком с детекторами данных. Для этого случая я написал код для решения проблемы. Смотрите мой ответ. 08.11.2010
  • Как он сказал, NSDataDetectors не делает того, что хочет Ортвин; данные уже обнаружены. 08.11.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..