美文网首页IOS
混合开发H5,Cordova交互

混合开发H5,Cordova交互

作者: coco_CC | 来源:发表于2016-12-08 10:23 被阅读0次

这篇文章这要书写几个页面的逻辑关键,谁关联着谁

先看一下创建后的文件层级关系


1.png

1.下图为config.xml的配置

<feature name="Identifer">
        <param name="ios-package" value="CordovaPlugin" />
    </feature>

2.下图为js调用getData的配置

cordova.define("com.test.client.web.plugin.cordova", function(require, exports, module) {
module.exports = {
getData: function(ocuID, success) {
        exec(success, null, "Identifer", "getData", [ocuID]);
    }    
 });
});

3.下图为plugin类 .h .m

#import "CDV.h"

@interface CordovaPlugin : CDVPlugin

- (void)getData:(CDVInvokedUrlCommand *)command;
@end
@implementation CordovaPlugin

- (void) getData:(CDVInvokedUrlCommand *)command
{

NSDictionary *dic;
    NSString *strJson = [dic JSONString];

//把获得的参数转成String类型,然后下面回调,给j's
[self.commandDelegate runInBackground:^{
        CDVPluginResult *result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:strJson];
        [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
    }];
}
//字典转json串
- (NSString *)JSONString
{
  return([JKSerializer serializeObject:self options:JKSerializeOptionNone encodeOption:(JKEncodeOptionAsString | JKEncodeOptionCollectionObj) block:NULL delegate:NULL selector:NULL error:NULL]);
}

4.cordova配置

cordova.define('cordova/plugin_ext_list', function(require, exports, module) {
               module.exports = [
              {
"file": "plugins/com.test.plugin.web.test/www/test.js",
"id": "com.test.client.web.plugin.cordova",
"clobbers": ["Identifer" ]
              }
];
module.exports.metadata = 
 // TOP OF METADATA
{
               
}
 // BOTTOM OF METADATA
});

5.js中的配置


5.png

把这些关联下,以前面数字为标记。
1的Identifer要与2的Identifer还有4图中的Identifer必须一致,并且要与最后图5中的保持一致(图5为js类)。
1的CordovaPlugin为当前项目的OC plugin类,所以要与3的类名一致。
2的exec里的getData参数其实就是上面说的项目OC plugin类里的方法,2的getData与3的方法相对应。
2代码的getData: function(ocuID, success)
这个getData 是h5的方法调取。
2和4的id:com.test.client.web.plugin.cordova必须一致。
4的file 是路径,不懂的可以回顶部看层级关系对应下就好。

2的代码就是顶部图中的test.js

相关文章

  • 混合开发H5,Cordova交互

    这篇文章这要书写几个页面的逻辑关键,谁关联着谁 先看一下创建后的文件层级关系 1.下图为config.xml的配置...

  • Cordova自定义插件

    Android H5混合开发(2):自定义Cordova插件[https://www.jianshu.com/p/...

  • vue与原生混合开发

    ,做了一个混合开发的项目,主要是以vue框架开发h5页面,使用cordova作为中间沟通桥梁,实现了h5与安卓、i...

  • android cordova混合开发(交互部分)

    xxsx

  • iOS开发之 WebViewJavascriptBridge 原

    当前移动端 H5 与原生混合开发已成常态,这其中自然就少不了原生与 H5 的交互问题。iOS 端 WebViewJ...

  • H5调用Android和ios原生方法(react)

    混合开发中需要web需要和原生交互方式。 1、H5调用原生方法的方式 原生需要写方法来让H5调用,H5在windo...

  • Cordova混合开发

    现在app混合开发越来越多,方便,快捷。对于一点小的修改就需要提交到App Store进行审核,还要经历难熬的等待...

  • 混合开发-Cordova

    1. Cordova安装 安装Cordova需要先安装Node、npm环境,可以查看本机是否安装。 然后安装cor...

  • OC与H5交互(原生方法)

    在日常的开发中,OC与H5的混合开发已经很普遍了,OC与H5的交互也就在所难免了,下面就先来总结一下原生的方法。 ...

  • 自定义Cordova插件详解

    一、Cordova的基础点 在混合式应用中,我们通过现有的Cordova插件,可以轻松的在 H5 上调用手机nat...

网友评论

    本文标题:混合开发H5,Cordova交互

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