Когда использовать UIWebView по сравнению с Safari в приложении для iPhone?

При отображении веб-контента в приложении для iPhone мы обычно можем выбирать между отображением этого контента в UIWebView или открытием экземпляра Safari.

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

Для, возможно, не относящегося к делу контента, я обычно выбираю Safari.

Есть ли какие-нибудь обоснованные аргументы в пользу выбора одного метода над другим?

РЕДАКТИРОВАТЬ: Помимо технических, каковы ваши доводы в отношении пользовательского опыта?


person Stephen Burns    schedule 20.08.2011    source источник


Ответы (2)


Что касается UX, я думаю, это зависит от того, когда веб-контент отображается пользователю в рабочем процессе пользователя. Кроме того, как часто это делается и насколько это может отвлекать? Эти вещи важны, потому что вы хотите, чтобы пользователь оставался внутри своего приложения в течение максимального количества времени (есть большая вероятность, что пользователь не вернется). Для пользователя неприятно, если ему приходится несколько раз выходить из вашего приложения, чтобы перейти в Safari и вернуться обратно в ваше приложение в течение короткого промежутка времени. Более того, если вы случайно указали, что ваше приложение будет прекращено, если оно будет отправлено в фоновый режим, вам не следует запускать Safari.

Например, те же факторы действуют при создании страницы настроек. Цитируя HIG,

Затем у приложений есть два варианта представления предпочтений:

Настройки отображения внутри приложения. ИЛИ

Используйте набор настроек для управления настройками из приложения настроек.

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

HTH,

Акшай

person Akshay    schedule 21.08.2011
comment
Учитывается ли память, используемая при загрузке страниц в Safari, в общую память, которую может использовать ваше приложение? - person brendan; 09.03.2012

Последнее, что я читал, Safari выполняет JS намного быстрее, чем встроенный UIWebView. UIWebView, поскольку он используется в пользовательских приложениях, не будет предварительно компилировать JS для повышения скорости.

Похоже, это недостаток может уйти iOS 5.

person Nathanial Woolls    schedule 20.08.2011
comment
Натаниэль, что вы думаете о UX? - person Stephen Burns; 21.08.2011