美文网首页
Cordova混合开发

Cordova混合开发

作者: 心底碎片 | 来源:发表于2017-08-08 15:20 被阅读45次

    现在app混合开发越来越多,方便,快捷。对于一点小的修改就需要提交到App Store进行审核,还要经历难熬的等待,还不一定给你审核通过。尤其是对于我们公司,每天来自不同地区的不同需求那么多,每次的调整都要几天之后用户才可以使用。那么混合开发就是一种福音了,页面采用html网页,直接加载放在服务器上的html页面,有什么改动就可以直接改html页面。

    我们公司采用的是Cordova框架

    创建Cordova项目

    1.新建一个Cordova项目,官网有详细步骤,在这里就不多说了。Cordova官网
    2.在现有的项目中加入Cordova(这是我目前采用的方式)参考
    把CordovaLib文件夹拖入我们的项目(里面包含config.xml,Private和Public文件夹),
    把www文件添加到项目中,需要注意勾选的是create foler references,(里面有cordova.js,还可以放一些本地html文件)。
    备注:对于web开发伙伴,我们需要把cordova.js和cordova_plugins.js这两个文件给他们

    开始开发

    1.新建一个controller继承CDVViewController
    在viewDidLoad中加入一段代码self.startPage = @"index.html";
    注意这一句一定要加在[super viewDidLoad];前面,不然加载不了
    2.剩下的主要就是写插件了。当需要用到原生底层api就需要自定义插件
    比如拍照:

    • 1.新建一个插件TakePicture继承CDVPlugin,
      在.h文件中增加js调用的方法- (void)photoClick:(CDVInvokedUrlCommand *)command;
      注意:新建的插件都要在config.xml声明
        <feature name="TakePicture">
            <param name="ios-package" value="TakePicture" />
        </feature>
    
    • 2.实现插件的方法
        PhotoCommandID = command.callbackId;
        NSArray *arguments = command.arguments;
        if (arguments.count>0) {
            upLoadPictureURL = arguments[0];
            [self PhotoUPClick];
        }
        
    }
    

    command.callbackId是我们把值返回给js要用的id
    command.arguments是js传给我们的参数,是数组,双方可以协商传值的顺序

    CDVPluginResult * resultJS = nil;
    resultJS = [CDVPluginResult resultWithStatus:(CDVCommandStatus_OK) messageAsDictionary:reponseObj];
    [self.commandDelegate sendPluginResult:resultJS callbackId:PhotoCommandID];
    

    回传给js的数据可以是很多种类型,字典,数组,字符串,都可以,这些Cordova都提供了。

    js调用Cordova的方法
    cordova.exec(successBack,failBack,"TakePicture","photoClick",['1','2']);

    相关文章

      网友评论

          本文标题:Cordova混合开发

          本文链接:https://www.haomeiwen.com/subject/goptrxtx.html