Cordova入門(mén)系列(二)分析第一個(gè)helloworld項(xiàng)目

上一章我們介紹了如何創(chuàng)建一個(gè)cordova android項(xiàng)目童社,這章我們介紹一下創(chuàng)建的那個(gè)helloworld項(xiàng)目的代碼忱详,分析其運(yùn)行棉安。

MainActivity.java

我們已經(jīng)將MainActivity導(dǎo)入到了eclipse中。打開(kāi)scr下com.example.hello下的MainActivity.java聊浅。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">//MainActivity繼承了CordovaActivity
public class MainActivity extends CordovaActivity
{
@Override public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState); // Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
}
}</pre>
  學(xué)過(guò)安卓的都知道暑椰,Activity在啟動(dòng)的時(shí)候會(huì)首先調(diào)用onCreate方法霍转。

loadUrl(launchUrl);會(huì)在當(dāng)前的WebView中去加載首頁(yè),當(dāng)然這個(gè)首頁(yè)是我們自己配置的一汽,在res/xml/config.xml中避消。<contentsrc="index.html"/>。這個(gè)路徑都是指的assets/www下的路徑召夹。

這樣這個(gè)app啟動(dòng)的時(shí)候會(huì)首先調(diào)用這個(gè)MainActivity(當(dāng)然這是在AndroidManifest.xml中配置的)岩喷,然后Activity啟動(dòng)的時(shí)候會(huì)將index.html加載在其WebView中,然后我們就看到了Cordova的頁(yè)面监憎。

index.html

我們?cè)賮?lái)看看index.html中都有什么內(nèi)容纱意。

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
</head>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>  </pre>

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

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

在顯示這個(gè)index頁(yè)面的時(shí)候,會(huì)加載兩個(gè)js文件鲸阔。cordova.js就是cordova的api偷霉,調(diào)用原生內(nèi)容用的,相當(dāng)于jar包隶债。

index.js

再看這個(gè)index.js腾它。
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">var app = { // 初始化方法跑筝,會(huì)調(diào)用綁定事件的方法
initialize: function() { this.bindEvents();
}, // 綁定事件的方法,事件可以是這些:
// 'load', 'deviceready', 'offline', and 'online'.
//該事件是在 cordova 載入完成后發(fā)生的事件死讹,它表示cordova 加載完成并準(zhǔn)備訪問(wèn),yourCallbackFunction曲梗,相當(dāng)于程序的入口功能
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
}, // deviceready 后事件處理
onDeviceReady: function() {
app.receivedEvent('deviceready');
}, // 事件處理赞警,更新DOM妓忍,改變兩個(gè)元素的css
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);
}

}; //調(diào)用初始化方法
app.initialize();</pre>

加載index.js之后,程序會(huì)首先調(diào)用初始化方法愧旦,初始化的時(shí)候會(huì)去綁定事件監(jiān)聽(tīng):document.addEventListener('deviceready', this.onDeviceReady, false);

deviceready事件世剖,該事件是在 cordova 載入完成后發(fā)生的事件,它表示cordova 加載完成并準(zhǔn)備訪問(wèn)笤虫,你傳進(jìn)去的回調(diào)函數(shù)旁瘫,相當(dāng)于程序的入口函數(shù)。

當(dāng)cordova準(zhǔn)備好的時(shí)候琼蚯,會(huì)去首先執(zhí)行你傳進(jìn)去的回調(diào)函數(shù)酬凳,這里是onDeviceReady()。這個(gè)方法會(huì)改變DOM元素的css樣式遭庶。

最終效果就是宁仔,當(dāng)cordova沒(méi)有加載完的時(shí)候,頁(yè)面上Apache Cordova下面那里顯示的是:Connecting to Device(背景是灰色)峦睡。加載完之后翎苫,cordova準(zhǔn)備好之后,原來(lái)顯示的消失榨了,現(xiàn)在顯示的是:Device is Ready(背景是綠色)

轉(zhuǎn)自:http://www.cnblogs.com/lishuxue/p/6015420.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煎谍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阻逮,更是在濱河造成了極大的恐慌粱快,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叔扼,死亡現(xiàn)場(chǎng)離奇詭異事哭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瓜富,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)鳍咱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人与柑,你說(shuō)我怎么就攤上這事谤辜。” “怎么了价捧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵丑念,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我结蟋,道長(zhǎng)脯倚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮推正,結(jié)果婚禮上恍涂,老公的妹妹穿的比我還像新娘。我一直安慰自己植榕,他們只是感情好再沧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著尊残,像睡著了一般炒瘸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寝衫,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天什燕,我揣著相機(jī)與錄音,去河邊找鬼竞端。 笑死屎即,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的事富。 我是一名探鬼主播技俐,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼统台!你這毒婦竟也來(lái)了雕擂?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贱勃,失蹤者是張志新(化名)和其女友劉穎井赌,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贵扰,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仇穗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戚绕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纹坐。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舞丛,靈堂內(nèi)的尸體忽然破棺而出耘子,到底是詐尸還是另有隱情,我是刑警寧澤球切,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布谷誓,位于F島的核電站,受9級(jí)特大地震影響吨凑,放射性物質(zhì)發(fā)生泄漏捍歪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望费封。 院中可真熱鬧,春花似錦蒋伦、人聲如沸弓摘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)韧献。三九已至,卻和暖如春研叫,著一層夾襖步出監(jiān)牢的瞬間锤窑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工嚷炉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渊啰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓申屹,卻偏偏與公主長(zhǎng)得像绘证,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哗讥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程嚷那,因...
    小菜c閱讀 6,365評(píng)論 0 17
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,734評(píng)論 25 707
  • 創(chuàng)建第一個(gè)Helloworld項(xiàng)目,現(xiàn)在來(lái)分析運(yùn)行機(jī)制 MainActivity.java ??我們已經(jīng)將Main...
    samychen閱讀 1,133評(píng)論 0 0
  • 據(jù)說(shuō)在北方的大部分地區(qū)杆煞,夜晚超過(guò)8點(diǎn)魏宽,就極少有人上街了,大部分店鋪在那個(gè)鐘點(diǎn)也都已經(jīng)打烊决乎。我想队询,北方夜晚比較冷可能...
    黃大醒閱讀 184評(píng)論 0 1
  • 伴著清晨涼爽的風(fēng)娘摔,社會(huì)主義核心價(jià)值觀宣講實(shí)踐隊(duì)開(kāi)始了鄭州博物館之行。今天是實(shí)踐活動(dòng)的第五天唤反,但隊(duì)員們依舊熱情滿滿凳寺,...
    慊殤閱讀 239評(píng)論 0 0