Статьи

Corona SDK: создание веб-представления в приложении

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


WebView Рисунок 1

Используя собственный класс Corona и метод showWebPopup () , мы встроим экземпляр браузера и отобразим кнопку, чтобы вернуться к содержимому приложения.


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

Платформа iOS имеет следующие характеристики:

  • iPad: 1024×768 пикселей, 132 т / д
  • iPhone / iPod Touch: 320×480 пикселей, 163 т / д
  • iPhone 4: 960×640 пикселей, 326 точек на дюйм

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

  • Nexus One: 480×800 пикселей, 254 точек на дюйм
  • Дроид: 854×480 пикселей, 265 пикселей на дюйм
  • HTC Legend: 320×480 пикселей, 180 пикселей на дюйм

В этом уроке мы сосредоточимся на платформе iOS, специально разработанной для распространения на iPhone / iPod touch.


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


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

Я использовал функцию « Настроить размер …» в приложении «Просмотр» в Mac OS X.

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


Время написать наше приложение!

Откройте предпочитаемый редактор Lua (любой текстовый редактор будет работать, но у вас не будет подсветки синтаксиса) и подготовьтесь к написанию своего замечательного приложения.


Сначала мы скрываем строку состояния, это строка в верхней части экрана, которая показывает время, сигнал и другие индикаторы.

1
display.setStatusBar(display.HiddenStatusBar)

Теперь мы добавляем фон приложения.

1
local background = display.newImage(«background.png»)

Эта строка создает локальную переменную background и использует API отображения для добавления указанного изображения на сцену. По умолчанию изображение добавляется в 0,0 с использованием верхнего левого угла в качестве контрольной точки.


Повторите процесс с изображением логотипа, разместив его в центре верхней части сцены.

1
local logo = display.newImage(«logo.png», 20, 20)

Следующие строки создадут текст в центре сцены, обычно нам просто нужен один TextField, но, очевидно, символ новой строки (\ n) не работает с методом newText в данный момент.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
local aboutText = display.newText(«», 0, 0, native.systemFontBold, 13)
 
aboutText:setReferencePoint(display.CenterReferencePoint)
aboutText.x = display.contentWidth * 0.5
aboutText.y = display.contentHeight * 0.5 — 30
aboutText:setTextColor(238, 238, 238) — #EEEEEE
 
aboutText.text = «Thanks for using MobileTuts+!»
 
local aboutText2 = display.newText(«», 0, 0, native.systemFontBold, 13)
 
aboutText2:setReferencePoint(display.CenterReferencePoint)
aboutText2.x = display.contentWidth * 0.5
aboutText2.y = aboutText.y + 17
aboutText2:setTextColor(238, 238, 238) — #EEEEEE
 
aboutText2.text = «For more information and updates visit:»
 
local link = display.newText(«», 0, 0, native.systemFontBold, 13)
 
link:setReferencePoint(display.CenterReferencePoint)
link.x = display.contentWidth * 0.5
link.y = aboutText2.y + 30
link:setTextColor(229, 175, 6) — #E5AF06
 
link.text = «http://mobile.tutsplus.com/app»

Эта кнопка вызывает веб-представление, этот код добавляет его на сцену.

1
2
3
4
local goButton = display.newImage(«goButton.png»)
goButton:setReferencePoint(display.CenterReferencePoint)
goButton.x = display.contentWidth * 0.5
goButton.y = link.y + 50

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

Следующий код добавляет нижнюю панель и делает ее скрытой по умолчанию.

1
2
3
local bottomBar = display.newImage(«bottomBar.png», 0, 436)
 
bottomBar.isVisible = false

Кнопка «Назад», которая удаляет веб-вид (также скрыт по умолчанию).

1
2
3
local back = display.newImage(«backButton.png», 286, 448)
 
back.isVisible = false

Эта функция будет выполнена кнопкой назад. Он скрывает нижнюю панель и кнопку возврата, а также удаляет всплывающее окно.

1
2
3
4
5
6
function back:tap(e)
        bottomBar.isVisible = false
        back.isVisible = false
  
        native.cancelWebPopup()
end

Этот код вызывает веб-всплывающее окно и делает нижнюю панель и кнопку возврата видимыми для пользователя.

1
2
3
4
5
6
7
8
function goButton:tap(e)
        native.showWebPopup(0, 0, 320, 436, «http://mobile.tutsplus.com/author/carloz-yanez/»)
     
        — Back button visibility
 
        bottomBar.isVisible = true
        back.isVisible = true
end

Метод веб-всплывающих окон имеет следующие параметры:

  • x: позиция x, в которую будет добавлено всплывающее окно
  • y: позиция y, куда будет добавлено всплывающее окно
  • ширина: размер веб-всплывающего окна
  • высота: размер веб-всплывающего окна
  • URL: URL по умолчанию, который откроет всплывающее окно

Следующие строки добавляют необходимых слушателей к экранным кнопкам.

1
2
goButton:addEventListener(«tap», goButton)
back:addEventListener(«tap», back)

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

Используя графику, созданную до того, как вы сможете создать красивый и красивый значок, размер значка для iPhone составляет 57x57px (114x114px для дисплея сетчатки iPhone 4), но в магазине iTunes используется версия 512x512px, поэтому лучше создать свой значок в этом размере.

Для этого не нужно иметь закругленные углы или прозрачные блики, iTunes и iPhone сделают это за вас.


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