• 配置PhoneGap 到iOS




    下载 phonegap
    安装phonegap之前需要NodeJS环境,下载NodeJS并安装.安装环境的目的是为了使用phonegap命令行.

    3. 安装phonegap使用命令
        $phonegap create my-app
        $cd my-app
         $phonegap run iOS
    这样就会自动创建ios环境,可以在目录my-app/platforms/中找到ios目录.这样系统就自动为我们创建了一个ios的phonegap项目.此项目在默认目录中.
    4. 自定义项目创建路径
    命令: phonegap create <项目目录> <项目ID> <项目名称>
    自动创建了helloword目录,然后cd到platforms目录中,执行$phonegap run iOS命令.这样就自定义创建了phonegap项目.
    从目录可以看出,widget相关项目文件都放在staging文件目录里,在www文件夹中有具体的编程文件.还有各种移动平台的适配信息及资源文件.

    ios相关文件
    Classes:
        代理和主界面类
    Plugins:空目录
    Other Sources:
        pch文件和程序入口文件
    Resources:
        资源文件:图片,plist
    Frameworks:类库

    程序运行index.html 的原因:
    CDVConfigParser类中有个属性startPage,在方法loadSettings中判断,如果没有设置指定开始页面就会执行默认页。
        

    项目运行依赖于phonegap中提供的类库,但是在项目里面找不到相关文件,经过分析发现在Build Phases中有Copy www Directory项,其中Shell写的是/bin/sh 执行的shell在cordova/lib/copy-www-build-step.sh中。测试发现sh是unix执行脚本的可执行文件。
    cordova/lib/copy-www-build-step.sh在/bin/sh -c     目录中。
    在这个sh文件中有一句代码cordova/lib/copy-www-build-step.sh,这个目录在Phonegap创建的时候创建的,位于项目里的platforms/ios/cordova/lib下。ios目录就是程序根目录,所以设置配置文件cordova/lib/copy-www-build-step.sh可以用这个路径找到,sh找到这个文件之后会执行copy-www-build-step.sh里面的路径配置代码。

     





    Cordova就是Phonegap被Adobe收购后改的名字

    一、JS跟OC通信原理:
    1、JS 使用了两种方式来与 Objective-C 通信,一种是使用 XMLHttpRequest 发起请求的方式,另一种则是通过设置透明的 iframe 的 src 属性.
    1) JS 端使用 XMLHttpRequest 发起了一个请求,而在 Objective-C 端使用一个 NSURLProtocol 的子类来检查每个请求,如果地址是 /!gap_exec 的话,则认为是 Cordova 通信的请求,直接拦截,拦截后就可以通过分析请求的数据,分发到不同的插件类(CDVPlugin 类的子类)的方法中.

    2)在 JS 端创建一个透明的 iframe,设置这个 ifame 的 src 为自定义的协议,而 ifame 的 src 更改时,UIWebView 会先回调其 delegate 的 webView:shouldStartLoadWithRequest:navigationType: 方法

    二、OC跟JS通信原理
    通过UIWebView的方stringByEvaluatingJavaScriptFromString:执行一段JS代码,可以达到OC与JS通信的效果。

    三、JS 请求 Objective-C,Objective-C 返回结果给 JS
    IOS原生代码拿到 callbackId、service、action 及 actionArgs 后,会做以下的处理:
    1.根据 service 参数找到对应的插件类
    2.根据 action 参数找到插件类中对应的处理方法,并把 actionArgs 作为处理方法请求参数的一部分传给处理方法
    3.处理完成后,把处理结果及 callbackId 返回给 JS 端,JS 端收到后会根据 callbackId 找到回调方法,并把处理结果传给回调方法。

  • 相关阅读:
    CSS属性值一览
    CSS属性一览
    CSS选择器一览
    HTML颜色编码
    游戏
    数据库系统概念
    关于总结
    章节测试
    我的博客皮肤
    Emeditor所有快捷键操作
  • 原文地址:https://www.cnblogs.com/huntaiji/p/3807511.html
Copyright © 2020-2023  润新知