Как некоторые приложения браузера AppStore реализуют такие функции, как меню «Открыть на новой вкладке», процесс загрузки и т. Д.? - PullRequest
2 голосов
/ 11 июля 2010

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

  • Переопределить контекстное меню для ссылки, чтобы добавить пункт меню «Открыть в новой вкладке» ( Как добавить параметр во всплывающую таблицу действий в iphone safari? )
  • Отчет о прогрессе загрузки.
  • Поймать новые «всплывающие» окна (в которых целью ссылки не является «_self») и открыть в новой вкладке (требуется создание подкласса UIWebView и переопределение приватных методов.)

У кого-нибудь есть идея, если они сделаны каким-то умным способом, о котором я не знаю, или им просто удалось проникнуть в них в прошлых рецензентах приложений? Это удивило бы меня, поскольку у них есть полностью автоматизированный сканер api-использования, если только он не сканирует только более важные вызовы API ...

Нет реальной причины, я спрашиваю это, кроме ученых. Просто играл с UIWebView и заметил, что функциональность очень ограничена по сравнению с тем, что некоторым людям удалось с ним сделать ...

Есть мысли? Хотелось бы немного проницательности!

Приветствия

1 Ответ

0 голосов
/ 28 ноября 2010

Первое, вероятно, может быть достигнуто с помощью Javascript - это всего лишь предположение с моей стороны;вы используете JS для связи с кодом Obj-C для отображения пользовательского UIActionSheet.

Второе возможно, если вы посмотрите достаточно глубоко:

UIWebView имеет объект NSURLRequest,NSURLRequest имеет valueForHTTPHeaderField:, что позволяет получить общий размер содержимого запроса.NSURLRequest также имеет HTTPBodyStream, то есть NSInputStream, который должен дать вам общее количество прочитанных байтов.

Наконец, для отлова «всплывающих» окон, я предполагаю, что они используютделегировать обратные вызовы UIWebView для достижения этой цели, с некоторыми умными string-fu, чтобы определить, является ли это всплывающим окном или нет (оценивая Javascript и тому подобное).

...