使用Cordova进行iOS开发 (环境配置及基本用法)

安装Cordova CLI


dsadaskjhfkjsadhfkljsadhsdlkj
node.js
node.js

![](


{96D32B4A-B807-48DD-82B8-B3811D03552E}.png
1. cordova的安装:
  • 1.1 安装cordova需要先安装node.js
  • 1.2 如果你没有安装git client,需要下载并安装一个git客户端。
  • 1.3 使用node.js的依赖包管理工具npm来进行cordova安装。
    打开终端输入如下命令:
 sudo npm install -g cordova
*显示上面的内容说明cordova环境安装成功了*

<br >

2.创建cordova的项目
  • 2.1 新建一个cordova的项目
    打开终端输入如下命令,该命令可能需要一些时间来完成:
 cordova create hello com.example.hello HelloWorld [--template templatePath]
Parameter Description Notes
hello参数是必填 将为你的项目生成一个hello目录 www子目录是应用程序的主页,以及各种资源(css,js,img),遵循共同的web开发文件命名规范。这些资源将存储在设备上的本地文件系统,而不是远程服务。config.xml文件包含重要的需要生成和分发应用程序的元数据。
com.example.hello 参数可选 App ID 如果不填写这个参数,第三个参数就要省略,默认值是 io.cordova.hellocordova,但建议你填写一个适当的值。
HelloWorld参数可选 应用程序的项目名 这个参数的默认值是 HelloCordova,但建议你填写一个适当的值。
[--template templatePath] 参数可选,一般不填写 使用模板创建一个项目。 所有文件和文件夹的模板将被复制到新的项目。平台和插件可能包含在一个模板。这个参数是可选的。模板的路径可以是一个本地路径,NPM模块或Git URL。
  • 2.2 添加平台
    所有后续命令需要在项目的目录中运行,其范围内或任何子目录:
cd hello

在构建项目之前,您需要指定一组目标平台。你能够运行这些命令取决于您的机器是否支持每一个SDK,和你是否已经安装SDK。从Mac运行这些:

cordova platform add ios
*显示上面的内容就完成一个项目的创建操作*
  • 迭代项目 在hello目录中运行下面的命令来构建项目:
cordova build

指定生成iOS平台的代码项目:

cordova platform add ios

<br >

3. cordova项目开发
  • 3.1 cordova默认使用的 index.html 文件说明
    打开路径中Xcode工程:
/Users/iwevon/Cordova/hello/platforms/ios/HelloWorld.xcodeproj
为了避免混淆,移除(Remove References) 两个文件/文件夹的引用
上图文件是cordova默认使用的 indecx.html 文件
  • 3.2 Events Cordova生命周期事件
    • deviceready 当Cordova加载完成会触发
      将index.html中的文本替换成如下文本:
<!DOCTYPE html>
<html>
  <head>
    <title>Device Ready Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">
    // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    // device APIs are available
    //
    function onDeviceReady() {
        // Now safe to use device APIs
        alert(“onDeviceReady");
    }
    </script>
  </head>
  <body onload="onLoad()">
  </body>
</html>

运行结果:

<br >

  • pause 当应用程序进入到后台会触发
    resumes 应用程序从后台进入到前台会触发
    将index.html中的文本替换成如下文本:
<!DOCTYPE html>
<html>
  <head>
    <title>Pause Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">
    // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
       document.addEventListener("resume", onResume, false);
    }
    // device APIs are available
    //
    function onDeviceReady() {
        document.addEventListener("pause", onPause, false);
    }
    // Handle the pause event
    //
    function onPause() {
         console.log("onPause");
    }
    // Handle the resume event
    //
    function onResume() {
         console.log("onResume");
    }
    </script>
  </head>
  <body onload="onLoad()">
  </body>
</html>

打开Safari,使用开发调试查看运行结果:


<br >

3.3 Plugin APIs

cordova plugin add cordova-plugin-console
显示上面的内容说明console插件安装成功了
  • 2>示例
    将index.html中的文本替换成如下文本:
<!DOCTYPE html>
<html>
    <head>
        <title>Hello World</title>
        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
        <script type="text/javascript" charset="utf-8">
         document.addEventListener("deviceready", onDeviceReady, false);
         function consoleLog(){
                console.log("console.log works well");
         }
        function consoleError(){
            console.error("console.error works well");
        }
        function consoleException(){
            console.exception("console.exception works well");
        }
        function consoleWarn(){
            console.warn("console.warn works well");
        }
        function consoleInfo(){
            console.info("console.info works well");
       }
        function consoleDebug(){
            console.debug("console.debug works well");
      }
        function consoleAssert(){
            console.assert("console.assert works well");
      }
        function consoleDir(){
            console.dir("console.dir works well");
        }
        function consoleDirxml(){
            console.dirxml("console.dirxml works well");
        }
        function consoleTime(){
            console.time("console.time works well");
        }
     function consoleTimeEnd(){
            console.timeEnd("console.timeEnd works well");
          }
        function consoleTable(){
            console.table("console.table works well");
      }
        </script>
        <style type="text/css">
            button {
                width: 200px;height:26px;font-size: 20px;padding: 1px;margin-left: 100px;
            }
        </style>
    </head>
    <body>
        <div ><br/><br/>
            <br/><button onclick="consoleLog()">consoleLog</button><br/>
            <br/><button onclick="consoleError()">consoleError</button><br/>
            <br/><button onclick="consoleException()">consoleException</button><br/>
            <br/><button onclick="consoleWarn()">consoleWarn</button><br/>
            <br/><button onclick="consoleInfo()">consoleInfo</button><br/>
            <br/> <button onclick="consoleDebug()">consoleDebug</button><br/>
            <br/><button onclick="consoleAssert()">consoleAssert</button><br/>
            <br/> <button onclick="consoleDir()">consoleDir</button><br/>
            <br/> <button onclick="consoleDirxml()">consoleDirxml</button><br/>
            <br/><button onclick="consoleTime()">consoleTime</button><br/>
            <br/><button onclick="consoleTimeEnd()">consoleTimeEnd</button><br/>
            <br/><button onclick="consoleTable()">consoleTable</button><br/>
        </div>
        </div>
    </body>
</html>

运行结果:


Safari+Xcode+Simulator运行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容