怎样在Ubuntu手机平台中开发Cordova HTML5应用

咱们知道Cordova HTML5应用具备夸平台的特性,同一时候也具备訪问本地一些资源的能力。在今天的这篇文章中。咱们将介绍一下怎样建立并执行一个Cordova HTML5的应用到咱们的Ubuntu手机中。本文的英文原文在“http://developer.ubuntu.com/en/apps/html-5/guides/cordova-guide/”。html


1)安装好咱们的armhf chroot


假设开发人员已经看过我曾经的文章“ Ubuntu SDK 安装”的话,你可能已经安装好本身的armhf chroot了。除了在SDK中可以帮咱们安装咱们所需要的chroot外,咱们也可以经过例如如下的命令来简单地安装咱们本身所需要的chroot。

如下以15.04 framework为例:android


$sudo click chroot -aarmhf -f ubuntu-sdk-15.04 create  

咱们可以在命令行键入如上的命令就可以建立咱们的15.04的armhf chroot。

等安装完之后,咱们就可以进行下一步的动做。开发人员假设想为14.10的目标进行编译,也可以使用相同的方法来安装14.10的armhf chroot。ios



2)安装Cordova


在这一步。咱们来安装Cordova环境。假设你曾经已经安装过的,建议你使用例如如下的方法删除曾经的安装(由于曾经的安装有bug)。 假设你历来没有安装过的话。请忽略这一步

$rm -rf ~/.cordova
$rm -rf ~/.cache

这是为了完全删除曾经已经在你的电脑中的安装。

而后。咱们依照例如如下的步骤来安装Cordova:

$ sudo apt-add-repository ppa:cordova-ubuntu/ppa; sudo apt-get update
$ sudo apt-get install cordova-cli

到眼下的这一步。咱们基本上已经建立好咱们的Cordova环境了。


3)建立一个简单的Cordova例程


眼下14.10的架构是默认的开发架虽然未来会有变化。

在例如如下的命令中,假设没有指定详细的架构,14.10架构将会被採用。git


使用例如如下的命令来建立一个简单的Cordova应用:

$cordova create myapp  myapp.mycompany "My App"
$cd myapp
$cordova platform add ubuntu
$vi config.xml

注意:请在你的config.xml中增长例如如下的句子。以保证你的应用有一个icon图标:

  <icon src="www/img/logo.png" />

另外,请你在config.xml中增长本身的有效的邮件地址:

 <author email="myid@ubuntu.com" />

这样整个config.xml的文件例如如下:

config.xml



<?xml version='1.0' encoding='utf-8'?>
<widget id="myapp.mycompany" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>My App</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="myname@mycompany.com" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" version="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <icon src="www/img/logo.png" />
</widget>


这样咱们整个的Cordova模版已经被创建好了。

如下咱们来详细描写叙述怎么进行编译。github



4)编译咱们的模版Cordova应用


咱们可以使用例如如下的命令为咱们的手机进行编译:

$ cordova build --device

就如咱们上面所说的同样,它选择默认的一个版本号的armhf chroot进行编译。眼下它指的是14.10。

在第一次编译时,可能需要咱们去安装一些额外的库才干够进行编译。web

它会提演示样例如如下所看到的的错误信息:apache





List of devices attached 
750ABLLH4897	device

Target Device: 750ABLLH4897
Building Phone Application...

Error: missing dependency inside armhf chroot
run:
sudo click chroot -a armhf -f ubuntu-sdk-14.10 install cmake libicu-dev:armhf pkg-config qtbase5-dev:armhf qtchooser qtdeclarative5-dev:armhf qtfeedback5-dev:armhf qtlocation5-dev:armhf qtmultimedia5-dev:armhf qtpim5-dev:armhf libqt5sensors5-dev:armhf qtsystems5-dev:armhf

就像上面显示的错误信息同样,咱们必须在命令行中打入例如如下的命令来安装咱们所需要的库:

$sudo click chroot -a armhf -f ubuntu-sdk-14.10 install cmake libicu-dev:armhf pkg-config qtbase5-dev:armhf qtchooser qtdeclarative5-dev:armhf qtfeedback5-dev:armhf qtlocation5-dev:armhf qtmultimedia5-dev:armhf qtpim5-dev:armhf libqt5sensors5-dev:armhf qtsystems5-dev:armhf

固然咱们也可以使用例如如下的方法来安装:

$click chroot -aarmhf -fubuntu-sdk-14.10 maint

而后,再打入例如如下的命令:



等安装完后,咱们打入exit命令。退出就能够。

又一次进入到咱们的应用的根文件夹,再次打入例如如下的命令:

$ cordova build --device


咱们可以在项目文件夹下找到咱们所需要的click包文件:

liuxg@liuxg:~/web/myapp$ find ./ -name *.click
./platforms/ubuntu/ubuntu-sdk-14.10/armhf/prefix/myapp.mycompany_0.0.1_armhf.click

为了能够在手机上直接执行。咱们能够直接执行一下的命令:

$ cordova run --device --debug

在手机上的执行结果:



对于使用基于ubuntu-sdk-15.04 chroot来讲,咱们必须使用例如如下的命令来完毕咱们的build:

$ cordova build --device -- --framework ubuntu-sdk-15.04 --verbose

当咱们执行时,咱们也必须使用例如如下的命令来完毕:

$ cordova run --device --debug -- --framework ubuntu-sdk-15.04

整个项目的源代码在: https://github.com/liu-xiao-guo/cordovasample


5)怎样在手机中调试本身的应用


为了能够输出一些实用的调试信息,咱们能够在咱们的index.js文件里增长例如如下的console.log语句:

var app = {
	
    // Application Constructor
    initialize: function() {
        this.bindEvents();
    },
    // Bind Event Listeners
    //
    // Bind any events that are required on startup. Common events are:
    // 'load', 'deviceready', 'offline', and 'online'.
    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },
    // deviceready Event Handler
    //
    // The scope of 'this' is the event. In order to call the 'receivedEvent'
    // function, we must explicitly call 'app.receivedEvent(...);'
    onDeviceReady: function() {
        app.receivedEvent('deviceready');
    },
    // Update DOM on a Received Event
    receivedEvent: function(id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');

        console.log('Received Event: ' + id);
    }
};

console.log("This shows how to output something to debug");

app.initialize();


当咱们执行咱们的HTML5应用到手机时。咱们可以看到例如如下的输出:

$ cordova run --device --debug -- --framework ubuntu-sdk-15.04





就像上图中显示的那样,咱们可以在电脑中打开chromium浏览器,并输入以上的http://127.0.0.1:9222地址:





从上面咱们可以看出来咱们加入的的调试信息:

This shows how to output something to debug

在Desktop上的调试也是同样的。咱们仅仅需要用例如如下的方法进行执行:

$ cordova run --debug

在chromium浏览器中输入地址http://127.0.0.1:9222就能够。

不少其它想知道怎样在手机上利用Cordova实现camera功能,请參阅文章“ Cordova camera app tutorial”。开发人员可以參考文章“ 在Ubuntu平台上建立Cordova Camera HTML5应用”来开发一个Cordova Camera HTML5应用。
相关文章
相关标签/搜索