UIDevice identifierForVendor
представленный в iOS 6 будет работать для ваших целей.
identifierForVendor
представляет собой буквенно-цифровую строку, которая однозначно идентифицирует устройство для поставщика приложения. (только для чтения)
@property(nonatomic, readonly, retain) NSUUID *identifierForVendor
Значение этого свойства одинаково для приложений от одного поставщика, работающих на одном устройстве. Различное значение возвращается для приложений на одном устройстве от разных поставщиков, а также для приложений на разных устройствах в зависимости от поставщика.
Доступно в iOS 6.0 и более поздних версиях и объявлено в UIDevice.h
Для iOS 5 см. Эту ссылку UIDevice-with-UniqueIdentifier-для-iOS-5
Iframes can have similar issues as frames and inconsiderate use of XMLHttpRequest
: They break the one-document-per-URL paradigm, which is essential for the proper functioning of the web (think bookmarks, deep-links, search engines, ...).
If you're creating a web application, use whatever technique you want to (including frames, flash, applets, $whatever). If you're creating an actual, informational web page, stick to frameless HTML, CSS and unobstrusive JavaScripts and keep in mind that the page should still be usable with scripting disabled.
Это плохая практика и ленивый способ написания хорошего (читай: делает то, что хотел заказчик) кода. Поиск по запросу "iframe bad" в Google (без кавычек) вызывает множество дискуссий на форуме по этой теме. Если вам действительно нужно добавить внешний контент, используйте AJAX. А еще лучше вообще не делай этого.
Потому что с ними сложно работать, когда дело касается безопасности. Современный браузер с хорошим поведением не позволяет писать код в iFrame, который манипулирует элементами в других iFrame на странице. Иногда это может затруднить выполнение определенных техник.
Не используйте фреймы iframe для дизайна. CSS лучше справляется с той же задачей и дает гораздо больше свободы.
Одна из причин, по которой они отвергаются, заключается в том, что они по своей сути медленные. К тому времени, когда iframe начинает загрузку, его главная страница уже находится на продвинутой стадии конвейера загрузки. Практически невозможно совместить фреймы iframe и быстрый просмотр.
Я полагаю, потому что это противоречит всему фундаментализму html-Designs-contents + css-does-the-visual-design. Кроме того, чрезмерное использование iframe - это потеря производительности, поскольку он выполняет отдельные вызовы для получения кадра. Если вы думаете об этом, AJAX в основном похож на iframe, за исключением того, что он моден сегодня (может не быть в будущем).
С точки зрения безопасности, это своего рода проблематично, потому что пользователь может загружать полный мусор из другого домена, даже не зная.
Одна из проблем заключается в том, что у них есть собственный жизненный цикл страницы, поэтому взаимодействие между хостом и дочерним элементом iframe ограничено (строка запроса, переменные сеанса или JS). Альтернативой может быть использование div с прокруткой.
Другая проблема - печать. Вывод iframe (или прокручиваемого div, если на то пошло) может быть непредсказуемым и сильно различается в зависимости от браузера.
Я думаю, что IFrames имеют свое место. Я бы не стал использовать их на интерфейсных / общедоступных веб-сайтах из-за проблем с SEO и т. Д. Для внутреннего / внутреннего веб-приложения я думаю, что они полезны, когда вам нужно изолировать стиль определенного раздела. с остальной части страницы, например средство просмотра отчетов или редактор HTML, где стили, унаследованные от родительской страницы, могут вызвать проблему, если все содержимое находится в одном документе. Мой 2с ...
Современные окна iframe имеют плохую репутацию из-за поддержки iframe в прошлых браузерах. Подобно VB.NET, имеющему плохую репутацию из-за истории VB6. Сейчас я использую их там, где это необходимо ... просто имейте в виду, что это может не работать, как вы время от времени планировали, и учитывать это.
Одна из причин - безопасность - атаки внедрения iframe были довольно распространены. См. Описание на этой странице Ars Technica:
http://arstechnica.com/security/news/2008/03/ongoing-iframe-attack-proving-difficult-to-kill.ars
и еще одна страница, резюмирует некоторые уязвимости (я не знаю, сколько из них актуально для текущего поколения браузеров, но статья не так уж и старая):
http://www.thespanner.co. uk / 2007/10/24 / iframes-security-summary /
С другой стороны, они обеспечивают междоменное взаимодействие и довольно часто используются веб-приложениями "ajaxy":
http://softwareas.com/ cross-domain-communication-with-iframes
Я думаю, люди путают фреймы iframe с фреймами HTML, а фреймы почти повсеместно презираются.
Люди используют фреймы iframe все время, даже не осознавая этого. Если я правильно помню, TinyMCE использует iFrames.
Я хотел добавить, что большую часть времени iframe также не помогают при поисковой оптимизации страницы. Робот Googlebot не размещает на странице содержимое iframe.
Есть одна ситуация, когда (почти) требуются iframe: когда содержимое iframe находится в другом домене, и вам нужно выполнить аутентификацию или проверить файлы cookie, привязанные к этому домену. На самом деле это предотвращает проблемы с безопасностью, а не создает их.
Например, если вы пишете своего рода плагин, который можно использовать на любом веб-сайте, но плагин должен аутентифицироваться в другом домене, вы можете создать цельный iframe, который запускается и аутентифицируется во внешнем домене.
Как сказал Носредна, это, вероятно, потому, что люди путают их с фреймами, и на самом деле существует множество веских аргументов против фреймов. Некоторые из них не применимы к iframe, но, опять же, некоторые из них применимы.
Самая поразительная из таких проблем, вероятно, связана с глубокими ссылками: действительно, iframe страдают от этого в меньшей степени, чем фреймы, но если вы позволите своим пользователям перемещаться между разными страницами в iframe, это будет проблемой. Также есть пара проблем с юзабилити, на которые вам нужно обратить внимание. Самый распространенный пример - это двойные полосы прокрутки, которые лично меня очень раздражают.
Я стараюсь избегать iframe, в основном потому, что считаю это нелегким решением. Я обнаружил, что когда я на самом деле сажусь и думаю об этом, вот и все ' s почти всегда лучшее решение. Несмотря на это, я тоже считаю, что для них есть место. Это идеал веб-мира: просто потому, что он давно используется не по назначению, пришел к консенсусу, что его никогда не следует использовать. На самом деле это не так, но я считаю, что вам следует дважды подумать, прежде чем использовать фреймы.
Нет ничего плохого в использовании Iframe для создания веб-приложений. Они позволяют сочетать целевой контент с инкапсуляцией памяти. Сколько раз кто-нибудь создавал какую-нибудь хитроумную штуку на javascript ajax, которая полностью разрушалась, когда они забывали загрузить последнюю версию Jlibrary на родительскую страницу или в DIV? Большинство других проблем связаны с SEO, которые имеют значение только в том случае, если вы действительно хотите украсть чужой контент, что в любом случае довольно глупо. Ифреймы дают вам инкапсулированную память и возможность обмениваться хорошо оформленными страницами на нескольких сайтах. Несмотря на то, что многие хотят заставить вас поверить, Iframes и их эквиваленты будут существовать еще очень долго.