iPhone: как реализовать панель приветствия HTML - PullRequest
0 голосов
/ 10 февраля 2010

Я бы хотел добавить что-то вроде панели приветствия (экрана приветствия) в наше приложение для iPhone, чтобы информировать наших пользователей об обновлениях и новых предложениях при запуске приложения. У меня есть следующие мысли и сомнения:

Не требуется ввод пользователя

Показывает общий HTML без каких-либо действий с пользовательской точки зрения, вещь закрывается через 2 или 3 секунды и имеет кнопку закрытия, если вы хотите закрыть его вручную. Это для рекламы и советов.

  • Это должно быть очень просто реализовать

Требуется ввод данных пользователем

Показывает общий HTML-код с действием, требуемым с точки зрения пользователя, например опросом. Пользователь должен иметь возможность пропустить это

  • тоже самое, что и выше, но возможно ли, что пользователь отправляет что-то на HTML-странице, и это также приводит к тому, что что-то происходит в приложении iPhone (возможно, через Java Script)? Например, пользователь отправляет опрос на странице HTML, а затем приложение закрывает текущий экран и переходит к следующему экрану (то есть реальному приложению)?
  • Можно ли также получить параметры (например, идентификатор) через веб-сайт HTML? например если пользователь получает предложение на панели приветствия HTML, он щелкает по нему, и он перенаправляет его прямо на экран в приложении iPhone с содержимым, загруженным с сервера (через JSON), в зависимости от идентификатора предложения, полученного через страницу HTML.

Мы предпочитаем реализовывать его через HTML, потому что это дает нам большую гибкость. Но я также открыт, чтобы услышать другие предложения.

Спасибо

Ответы [ 3 ]

5 голосов
/ 10 февраля 2010

Ответ Ренджера правильный, чтобы выполнить то, что вы хотите. Тем не менее, настоящий правильный ответ: «Не делай этого в первую очередь».

С точки зрения дизайна, «панель приветствия» или любой вид заставки / заставки - плохая идея, и документация Apple явно запрещает вам их использовать. Даже для игр это плохая идея, которую следует избегать, если это возможно.

Это не «Панель приветствия», это «1005 * панель, через которую все наши маркетинговые дерьмо перед тем, как вы сможете использовать наше приложение ».

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

Напротив, мобильные приложения часто используются людьми в пути и в спешке. Приложения небольшие и в идеале выполняют одну задачу. Как можно быстрее люди должны иметь возможность войти в приложение, выполнить любую задачу, которую выполняет приложение, а затем вернуться обратно. Если вы используете приложение каждый раз в течение 30 секунд или около того, необходимость тратить 5 секунд каждый раз, просматривая заставки, очень раздражает.

Аппаратное обеспечение Mobil работает медленнее, а операции могут занимать больше времени. В зависимости от сложности и ресурсов запуск приложения может занять до 10 секунд. В вашем случае вы хотите добавить на начальный экран, который должен загрузить, подключиться к URL, отобразить, а затем попросить пользователя выполнить операцию. Это займет минимум 5-10 секунд. Таким образом, вы смотрите на пользователей, которым приходится тратить 20 секунд или больше, просто входя в ваше приложение.

Звучит не так много, но попробуйте смоделировать свое приложение, а затем использовать его на ходу, то есть во время ходьбы, ожидания лифта, подъема по лестнице, ожидания красного света и т. Д. Проверьте это в социальных ситуациях. В середине разговора произнесите: «Позвольте мне проверить это», затем достаньте iPhone, запустите ваше приложение и попытайтесь получить от него некоторую информацию. 20 секунд становится очень долгим временем при всех этих обстоятельствах.

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

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

Я не знаю, сколько раз приходил какой-то идиот из маркетинга и начинал запрос на функцию с «Мы должны заставить пользователя ...». Единственный ответ на эти типы запросов - установить маркетинг Слегка в огне. Сделайте это несколько раз, и они перестанут пытаться систематически отталкивать ваших клиентов.

2 голосов
/ 10 февраля 2010

UIWebViewDelegate имеет метод, который позволяет вам реагировать на взаимодействие на HTML-странице:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

Используя это, вы можете отследить любые ссылки, на которые нажали, и ответить на них в вашем приложении, представив другое представление.

Получение параметров, таких как идентификатор, может быть выполнено несколькими различными способами.

1) Вы можете проанализировать HTML и определить его из источника.

2) У вас может быть функция javascript в HTML, которая возвращает идентификатор. Позвоните, используя

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

3) Вы также можете использовать метод делегата, который я упомянул.

Если вы создадите такую ​​ссылку: <a href="openInAppOffer_1">get offer</a>, вы можете перехватить ее в делегате и получить идентификатор из NSURLRequest.

Надеюсь, это укажет вам правильное направление.

1 голос
/ 10 февраля 2010

Если вам нужен какой-то экран запуска, хорошим вариантом будет использование default.png. Приложение загружает и отображает это изображение, прежде чем оно сделает что-либо еще.

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

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

В вашем случае вам потребуется динамически генерировать файл default.png при обновлении веб-страницы. После запуска он отображал информацию и покупал время, когда пользователь ее читал, принимал решение и касался интерфейса, реальная веб-страница заменила бы его.

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

В любом случае, если вы запускаете веб-страницу, которую пользователь не выбрал, я советую вам создать файл default.png, который отображает сообщение в виде строки «Проверка обновлений и информации» (или что вы делаете) поэтому пользователь не будет думать, что ваше приложение запущено и зависло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...