phonegap(Cordova) 入门教程

phonegap(Cordova) 入门

cordova(phonegap) 两者区别:

  1. node.js安装

    1. 下载相应的安装跑进行安装即可
  2. 安装phonegap

    1. npm install -g phonegap
    2. npm install -g cordova
  3. 生成第一个应用

    1. 创建一个cordova项目 phonegap create projectName packageName;
    2. 创建一个android工程 cordova platforms add android (等同于phonegap run android,但是执行该句会出现无法执行下去的情况。)
    3. cordova build 编译执行android工程(这里需要连接真机或者测试机)
  4. cordova项目目录结构

    1. phonegap create xxxx 创建的文档结构

      cordova项目结构

    2. cordova platforms add Android 创建的Android项目结构

      android项目结构

    3. cordova 为js提供的js 插件 结构

      Codova 定义的js文件

    4. android 的创建的资源文件内容

      android 的资源文件

  5. js调用原生api 的方法定义

    1. 对于html+css+js 书写语法没有变化,只有在通过JS调用原生的api的时候采用特定的格式
    2. 插件的定义,建议写在assets/www/plugins/xxx/xxx目录下
    3. 插件的书写
  6. js 插件在配置

    1. JS配置文件的位置/assets/www/cordova-plugins.js
    2. 插件的统一配置管理
  7. js的调用插件里面的方法 使用mytoast.show(); show(); 方法是在插件里面定义的执行方法

  8. Android路由表结构

    1. 路由表位置, 在Android工程中/res/xml/config.xml
    2. 路由表中对插件的配置
  9. Android中插件的书写

    1. java类需要继承CordovaPlugins 重写

      //按照不同的参数,重写的不同的方法进行处理不同数据
      //参数一  js传递的当前执行的行为识别码 在js插件中方法定义定义
      //参数二  传送的数据
      //参数三  执行结束以后的回调(成功/失败)会调用js中相应的方法
      execute(String action, JSONArray args, CallbackContext callbackContext) 
      execute(String action, CordovaArgs args, CallbackContext callbackContext)
      execute(String action, String rawArgs, CallbackContext callbackContext)
    2. 如果需要加载动态网络资源需要重写一下方法,

      @Override
        public Boolean shouldAllowRequest(String url) {
            return true;
        }
      
      //返回为true就是能够加载网络资源,同时能够使用Cordova.js 能够与Android相互调用
      @Override
        public Boolean shouldAllowBridgeAccess(String url) {
            return true;
        }
      
        @Override
        public Boolean shouldAllowNavigation(String url) {
            return true;
        }

  10. 在activity页面中同时存在html页面和原生Android控件

    1. 在界面不居中需要使用SystemWebView的控件,该控件继承WebView

    2. Activity需要继承CordovaActivity类

      public abstract class BaseActivityWebView extends CordovaActivity{
      
      }

    3. 在Activity中findViewById得到该控件的实例,然后需要重写createViewmakeWebView()

      @Override
        protected void createViews() {
              //获取SystemWebView的焦点
            appView.getView().requestFocusFromTouch();
        }
      
        @Override
        protected CordovaWebView makeWebView() {
            return new CordovaWebViewImpl(new SystemWebViewEngine((SystemWebView) webView));
        }
    4. 加载html页面

      //针对CordovaActivity中WebView加载页面使用一下方法,才能和Cordova.js进行交互
      loadUrl("http://....");
      loadUrl("file://....");

  11. activity调用html中js方法

     //使用CordovaActivity中提供的loadUrl方法直接调用。
     //参数格式 String类型  "javascript:"+js方法名字 ,  如果有参数直接拼接即可
     loadUrl("javascript:" + jsActionNmae);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dqliangjun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值