Статьи

Запуск приложений Chrome на мобильном устройстве с помощью Cordova

Приложения Chrome популярны среди пользователей Chrome. И почему бы и нет, они предоставляют метод создания переносимого «приложения» в привычной среде браузера Chrome.

Представьте себе возможности приложений Chrome, доступных на вашем смартфоне. Теперь мы можем запускать наши любимые приложения Chrome на Android и iOS, используя набор инструментов на основе Apache Cordova .

Cordova — это платформа с открытым исходным кодом для упаковки мобильных приложений с использованием HTML, CSS и JavaScript. Cordova оборачивает веб-приложение HTML, CSS и JavaScript с помощью встроенной оболочки и позволяет распространять их в Google Play , Apple App Store и других магазинах.

обзор

В этом руководстве мы создадим наше собственное приложение Chrome с использованием HTML, CSS и JavaScript и перенесем его на эмулятор Android. Приложение, которое мы будем создавать, будет простым приложением для получения последних твитов на основе определенного хэштега в твиттере.

Создание приложения Chrome

Мы начнем с создания нашего приложения Chrome. Как только мы создадим приложение Chrome и протестируем его в браузере Chrome, мы перенесем его на Android.

Исходный код из этого урока доступен на GitHub .

Создайте папку проекта с именем TwitterChromeApp . Внутри папки проекта создайте файл манифеста с именем manifest.json который будет файлом конфигурации для нашего приложения. Внутри manifest.json мы определим несколько параметров, необходимых для приложения Chrome. Для приложений Chrome требуется manifest_version равный 2 . Мы также определим имя приложения, его версию и путь к фоновому скрипту, который будет выполняться при запуске приложения. Мы будем извлекать твиты из внешнего URL-адреса службы, поэтому мы также укажем это внутри этого файла. Вот как должен выглядеть manifest.json :

 { "manifest_version": 2, "name": "Tweet Chrome App", "version": "1.0", "app": { "background": { "scripts": ["scripts/main.js"] } }, "permissions": [ "http://twittersearchapi.herokuapp.com/search" ] } 

При запуске приложения Chrome мы покажем окно, где будут отображаться твиты из твиттера. В приложениях Chrome есть событие onLaunched которое мы используем для создания окна для нашего приложения при запуске приложения.

Внутри папки проекта TwitterChromeApp создайте еще одну папку с именем scripts и внутри нее создайте фоновый скрипт с именем main.js Добавьте следующий код в main.js :

 chrome.app.runtime.onLaunched.addListener(function() { // creating window for app code will be here }); 

Внутри события onLaunched мы создадим вдову для нашего приложения Chrome. Добавьте следующий код в main.js :

 chrome.app.runtime.onLaunched.addListener(function() { var screenWidth = screen.availWidth; var screenHeight = screen.availHeight; var width = 500; var height = 300; chrome.app.window.create('index.html', { id: "tweetAppID", outerBounds: { width: width, height: height, left: Math.round((screenWidth - width) / 2), top: Math.round((screenHeight - height) / 2) } }); }); 

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

chrome.app.window.create создает новое окно, используя html внутри файла index.html .

Внутри папки проекта TwitterChromeApp создайте новый файл с именем index.html как показано ниже:

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Chrome Tweet App</title> </head> <body> <h1>Tweets !!</h1> </body> </html> 

Теперь попробуйте установить приложение Chrome в браузере Chrome. Откройте Инструменты -> Расширения (возможно, Дополнительные инструменты ). Включите режим разработчика из флажка в правом верхнем углу, а затем нажмите Загрузить распакованное расширение и выберите папку проекта.

Запустите расширение через окно « Приложения» или « Расширения», и вы увидите следующее:

Предварительный просмотр приложения Chrome

Далее мы создадим ajax-вызов, который запускается при запуске окна, извлекающего твиты из URL-адреса службы. Мы будем использовать сервис, размещенный на Heroku . Сервис имеет несколько ограничений. Он только получает твиты с хештегом perkytweets , этого достаточно для нашего примера.

Мы будем использовать jQuery для вызова AJAX, поэтому загрузите его в папку scripts и index.html в index.html , например:

 <script type="text/javascript" src="scripts/jquery-1.11.1.min.js"></script> 

Теперь создайте новый файл с именем script.js в папке scripts и создайте вызов ajax, как показано:

 $(function() { $.ajax({ type: 'GET', url: 'http://twittersearchapi.herokuapp.com/search', success: function(response) { var resObj = JSON.parse(response); console.log(resObj); }, error: function(error) { console.log(error); } }); }); 

Включите script.js в index.html :

 <script type="text/javascript" src="scripts/script.js"></script> 

Теперь откройте Инструменты -> Расширения (или Больше инструментов ) и нажмите перезагрузить, чтобы отразить изменения. Затем нажмите на приложение, чтобы перезапустить его. Если вы проверяете консоль Chrome (просто обычную консоль, к которой у вас есть доступ в Chrome), на ней должен отображаться ответ от URL-адреса службы.

Далее мы отобразим ответы в index.html . Мы будем использовать Bootstrap для стилизации страницы.

Создайте папку styles внутри папки вашего проекта и загрузите в нее файлы Bootstrap css. Включите CSS-файл Bootstrap в index.html .

 <link href="styles/bootstrap.min.css" rel="stylesheet"> 

Включите элемент ul в index.html для отображения твитов. Вот как должен выглядеть index.html сейчас:

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Chrome Tweet App</title> <link href="styles/bootstrap.min.css" rel="stylesheet"> <script type="text/javascript" src="scripts/jquery-1.11.1.min.js"></script> <!-- Check this matches your jQuery version and file name --> <script src="scripts/script.js"></script> </head> <body> <h1>Tweets !!</h1> <ul id="ulTweets" class="list-group"> </ul> </body> </html> 

Внутри успешного вызова AJAX в scripts.js содержится следующий код для добавления элементов, извлеченных из вызова службы, в ul в index.html .

 $.each(resObj, function(index, value) { $('#ulTweets').append('<li class="list-group-item"><span class="badge">' + resObj[index].retweet_count + '</span>' + resObj[index].text + '</li>'); }); 

Перезагрузите и перезапустите приложение, и вы должны увидеть экран, полный твитов.

Создание приложения Chrome для Android

Поскольку мы будем запускать наше приложение на Android, убедитесь, что в вашей системе установлен Java JDK 7 или выше, Android SDK 4.4.2 или выше и Apache Ant .

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

 npm install -g cca 

Подробную информацию о настройке среды для переноса приложений Chrome на Android и iOS можно найти в официальных документах .

Когда настройка среды будет завершена, мы создадим новый проект из существующего TwitterChromeApp для TwitterChromeApp на Android.

Выполните следующую команду, чтобы создать проект:

 cca create TwitterAppForAndroid --copy-from=path/to/TwitterChromeApp/manifest.json 

Перейдите в TwitterAppForAndroid и выполните следующую команду, чтобы запустить проект в эмуляторе Android:

 cd TwitterAppForAndroid cca emulate android 

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

Вывод

В этом уроке мы увидели, как создать простое приложение Chrome и перенести его на платформу Android. Дополнительную информацию о запуске приложений Chrome на мобильных устройствах с использованием Apache Cordova можно найти в официальных документах .

Что вы думаете об этой опции Chrome App для создания мобильного приложения? Есть ли у него какие-либо преимущества по сравнению с обычным веб-приложением HTML, CSS и JavaScript в Cordova?