使用 Cordova 实现原生 iOS 和 h5的交互

h5调用原生 ios 的方法:

  1. h5使用 cordova打包生成ios 版本之后的项目文件里会自动集成CordovaLib/CordovaLib项目包,里面有它的公有和私有的代理方法;
    在这里插入图片描述
  2. 用 cordova 实现 h5调用原生的 ios 代码主要是通过插件来实现的;首先我们需要创建一个插件的类,这里我创建了MyObjPlugin类, 继承CDVPlugin,编写一个方法,为 h5调用时使用的方法, - (void)presentVideoViewController:(CDVInvokedUrlCommand*)command;
    在这里插入图片描述
    在.m 文件中实现该方法,跳转进入视频监控界面;
    在这里插入图片描述
  3. 我们创建好自定义插件和方法之后,需要将插件添加到 config.xml 文件中配置,引用插件.插件名称要与Cordova.exec调用方法里的插件名称一致.
    在这里插入图片描述
  4. 在 h5代码里,使用Cordova.exec(success,failed,service,action,args)函数,可以调用 cordova 插件的方法,这里我们用的是自定义的插件,方法名称为我们定义好的方法名
    success: 调用成功的回调,执行 h5操作;
    failed: 调用失败的回调;
    service: 自定义插件的名称, 与config.xml配置文件中feature字节的name属性相对应
    action: 插件执行iOS的方法;
    args: 界面传入的参数
    我是在h5代码中的 controller点击视频监控的按钮方法里调用Cordova.exec函数,并且把 ip,推流地址 ip,用户信息,请求的 token 作为参数传递到了 cordova 插件方法中
    在这里插入图片描述
    完成以上就可以实现 h5调 iOS 原生的方法,成功和失败的回调方法是在 h5里面实现;
    拓展: iOS 原生调用 h5的方法:其实就是 h5调原生的回调方法, 使用Cordova封装的(evalJs:)方法,可以调用一段 h5的代码,也可以通过[self.commandDelegate sendPluginResult:result1 callbackId:command.callbackId];来调用 h5里面的成功和失败的回调方法。
    在这里插入图片描述
展开阅读全文

没有更多推荐了,返回首页