1. Cordova構(gòu)建Android敌卓,IOS工程實例

cordova是用web編寫的移動端程序慎式,通過調(diào)用原生SDK的方式在js內(nèi)部編寫交互程序,然后加殼包裝趟径。

重要提示

采用混合開發(fā)的方式可以有很多種瘪吏,具體要根據(jù)項目的不同類型采用不同的方式,cordova是一款不錯的混合框架蜗巧,但是仍然無法和原生比性能掌眠,來自cordova官方的建議是如果你要做的是大型應用或者數(shù)據(jù)量較大,cordova并不是最佳選擇幕屹。

環(huán)境配置

  • Node 6.9.2
  • Android
    • Git 2.11
    • AndroidSDK(v19及以上)
    • JDK(7及以上)
  • IOS
    • Xcode
    • 終端
  • 以下演示都用Android為例扇救,不同的地方會標注

安裝Cordova

這幾天一直用GitShell,直到今天突然發(fā)現(xiàn)windows居然也可以用香嗓,所以就直接演示windows下的吧

  • 打開git
  • 安裝npm install -g cordova
  • 檢查cordova -version or cordova -v

創(chuàng)建一個Cordova項目

  • 創(chuàng)建一個workspace
    • C:\Users\Administrator>cd E:\Cordova
    • C:\Users\Administrator>e:
  • 創(chuàng)建項目
    • E:\Cordova>cordova create CordovaWindows com.jty.mycordova MyCordova
    • 得到提示Creating a new cordova project.
    • down迅腔!
  • 創(chuàng)建釋義
    • CordovaWindows 項目名
    • com.jty.mycordova包名
    • MyCordovaAppName

添加平臺支持

  • 進入剛創(chuàng)建的工程目錄
  • windows
    • cordova platform add android
  • Mac
    • $ cordova platform add IOS
    • $ cordova platform add android
  • 運行結(jié)果如下
    E:\Cordova\CordovaWindows>cordova platform add android
    Adding android project...
    Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: com.jty.mycordova
        Name: MyCordova
        Activity: MainActivity
        Android target: android-25
    Subproject Path: CordovaLib
    Android project created with cordova-android@6.1.2
    Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
    Fetching plugin "cordova-plugin-whitelist@1" via npm
    Installing "cordova-plugin-whitelist" for android
    
               This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this
    plugin since the whitelist will be built in.
    

構(gòu)建項目

第一次構(gòu)建可能有點慢,因為需要配置Gradle

  • 先看看項目結(jié)構(gòu)

    E:\Cordova\CordovaWindows>ls
    config.xml  hooks  platforms  plugins  www
    
    • 配置文件 config.xml
    • 關聯(lián)文件 hooks
    • android項目 platforms
    • 插件庫 plugins
    • web項目 www
  • 構(gòu)建項目

    • cordova build android
  • 構(gòu)建效果

E:\Cordova\CordovaWindows>cordova build android
ANDROID_HOME=E:\64androidstudio\Android\Sdk
JAVA_HOME=E:\JDK
Subproject Path: CordovaLib
Starting a new Gradle Daemon for this build (subsequent builds will be faster).
Incremental java compilation is an incubating feature.
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl
:CordovaLib:compileDebugNdk UP-TO-DATE
:CordovaLib:compileLint
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugShaders
:CordovaLib:compileDebugShaders
:CordovaLib:generateDebugAssets
:CordovaLib:mergeDebugAssets
:CordovaLib:mergeDebugProguardFiles
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:compileDebugRenderscript
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:processDebugManifest
:CordovaLib:generateDebugBuildConfig
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:incrementalDebugJavaCompilationSafeguard
:CordovaLib:compileDebugJavaWithJavac
:CordovaLib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have ch
anged, no previous execution, etc.).
?: ?Щ???????????????????? API??
?: ?й???????, ????? -Xlint:deprecation ???±???
:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug
:CordovaLib:mergeDebugJniLibFolders
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
:CordovaLib:bundleDebug
:prepareAndroidCordovaLibUnspecifiedDebugLibrary
:prepareDebugDependencies
:compileDebugAidl
:compileDebugRenderscript
:generateDebugBuildConfig
:generateDebugResValues
:generateDebugResources
:mergeDebugResources
:processDebugManifest
:processDebugResources
:generateDebugSources
:incrementalDebugJavaCompilationSafeguard
:compileDebugJavaWithJavac
:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no p
revious execution, etc.).
:compileDebugNdk UP-TO-DATE
:compileDebugSources
:mergeDebugShaders
:compileDebugShaders
:generateDebugAssets
:mergeDebugAssets
:transformClassesWithDexForDebug
:mergeDebugJniLibFolders
:transformNative_libsWithMergeJniLibsForDebug
:processDebugJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForDebug
:validateSigningDebug
:packageDebug
:assembleDebug
:cdvBuildDebug

BUILD SUCCESSFUL

Total time: 45.301 secs
Built the following apk(s):
        E:/Cordova/CordovaWindows/platforms/android/build/outputs/apk/android-de
bug.apk
  • 運行項目
    • cordova run android
    • 運行之后提示 No target specified, deploying to device '192.168.237.101:5555'.

    這里我開了一個Genymotion模擬器靠娱,上面是分配的設備沧烈,當然用真機效果當然是最好的。

這時候已經(jīng)可以將platforms下的android導入Android Studio運行了像云,因為它已經(jīng)是一個獨立項目了

配置項目

前面在命令行操作有諸多不便锌雀,那么接下里既然項目都可以運行了蚂夕,那就可以直接去項目配置

元素 描述
widget 這是我們在創(chuàng)建應用程序時指定的應用程序反向域值。
name 我們在創(chuàng)建應用程序時指定的應用程序名稱腋逆。
description 應用程式說明婿牍。
author 應用程式的作者。
content 應用程序的起始頁惩歉。 它位于 www 目錄內(nèi)等脂。
plugin 當前安裝的插件。
access 用于控制對外部域的訪問撑蚌。 默認的 origin 值設置為 * 上遥,這意味著允許訪問任何域。 此值不允許打開某些特定的網(wǎng)址來保護信息争涌。
allow-intent 用于控制對外部域的訪問粉楚。 默認的 origin 值設置為 * ,這意味著允許訪問任何域亮垫。 此值不允許打開某些特定的網(wǎng)址來保護信息模软。...
platform 構(gòu)建應用程序的平臺。
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.jty.mycordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>MyCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="521taoyuan@gmail.com" >
       TaoYuan
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="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>
</widget>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饮潦,一起剝皮案震驚了整個濱河市撵摆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌害晦,老刑警劉巖特铝,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異壹瘟,居然都是意外死亡鲫剿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門稻轨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灵莲,“玉大人,你說我怎么就攤上這事殴俱≌常” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵线欲,是天一觀的道長明场。 經(jīng)常有香客問我,道長李丰,這世上最難降的妖魔是什么苦锨? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上舟舒,老公的妹妹穿的比我還像新娘拉庶。我一直安慰自己,他們只是感情好秃励,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布氏仗。 她就那樣靜靜地躺著,像睡著了一般夺鲜。 火紅的嫁衣襯著肌膚如雪皆尔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天谣旁,我揣著相機與錄音,去河邊找鬼滋早。 笑死榄审,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的杆麸。 我是一名探鬼主播搁进,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昔头!你這毒婦竟也來了饼问?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤揭斧,失蹤者是張志新(化名)和其女友劉穎莱革,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讹开,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡盅视,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旦万。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闹击。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖成艘,靈堂內(nèi)的尸體忽然破棺而出赏半,到底是詐尸還是另有隱情,我是刑警寧澤淆两,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布断箫,位于F島的核電站,受9級特大地震影響秋冰,放射性物質(zhì)發(fā)生泄漏瑰枫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望光坝。 院中可真熱鬧尸诽,春花似錦、人聲如沸盯另。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸳惯。三九已至商蕴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芝发,已是汗流浹背绪商。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辅鲸,地道東北人格郁。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像独悴,于是被迫代替她去往敵國和親例书。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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