cordova JS与Object-C 进行数据交互

本文介绍了如何使用Cordova插件在Hybrid模式开发的APP中实现H5与Nativecode(Java、Objective-C)的交互,通过详细步骤和示例代码,帮助开发者轻松完成跨平台功能集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


</pre>     最近在做一个APP采用的是Hybrid模式开发,跨平台开发速度快 ,本APP才用的是开发框架是 cordova + ionic +angularjs 模式开发,才开发中由于功能需求,需要H5页面与Native code 交互 也就是H5与Java交互(android)、H5与Object-C交互(IOS)<p></p><p>    该功能的实现是在用自定义Cordova 插件方式实现:</p><p>    实现方式:</p><p>    1、下载cordova 插件开发工具</p><p>          在终端输入:npm install -g plugman</p><p></p><p>   2、下载成功后新建插件</p><p>         plugman create --name 插件名称 --plugin_id 插件ID --plugin_version 版本号</p><p>         注意:把中文改成需要的内容,插件生成路径问终端打开的路径</p><p>   3、cd 命令进入到插件路径内</p><p>         cd 插件名称</p><p>   4、为插件添加支持平台</p><p>        plugman platform add --platform_name android       plugman platform add --platform_name ios</p><p>   上面添加了两个平台的支持android 、ios</p><p></p><p>插件进本制作完成,以IOS为例 打开 src/ios文件会看到Object-c文件</p><p></p><pre name="code" class="objc">/********* IosJSPlug.m Cordova Plugin Implementation *******/

#import <Cordova/CDV.h>

@interface IosJSPlug : CDVPlugin {
  // Member variables go here.
}

- (void)coolMethod:(CDVInvokedUrlCommand*)command;
@end

@implementation IosJSPlug

- (void)coolMethod:(CDVInvokedUrlCommand*)command
{
    CDVPluginResult* pluginResult = nil;
    NSString* echo = [command.arguments objectAtIndex:0];

    if (echo != nil && [echo length] > 0) {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
    } else {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
    }

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}

@end

先不要做修改等运行出效果后在改


5、修改JS文件;路径地址:www/**.js

var exec = require('cordova/exec');

var MyIOSPlugin = {
  /**
   * 调用IOS方法
   * @param method 要调用IOS插件的方法名
   * @param parameter 参数[数组]
   * @param success 成功回调
   * @param fail 失败回调
   * @returns {*}
   */
  nativeFunction: function(method, parameter, success, fail) {
    return Cordova.exec(success, fail, "IosJSPlug", method, parameter);
  }
};

window.plugins=window.plugins || {};
window.plugins.MyIOSPlugin=MyIOSPlugin

module.exports = MyIOSPlugin;

最关键的地点是:
Cordova.exec(success, fail, "IosJSPlug", method, parameter);
</pre><p></p><p>IOSJSPlug是我的Object-C 文件</p><p></p><p>6、将插件装入倒项目中 该命令需要终端路径在项目根目录下执行</p><p></p><p class="p1"><span class="s1">cordova plugin add ../IosJSPlug</span></p><p></p><p>7、然后在项目中调用该方法就可以了</p><p> </p><p></p><p><pre name="code" class="javascript">     window.plugins.MyIOSPlugin.nativeFunction("coolMethod",['Hello Cordova Plugin'],
        function(result) {
        alert("Success: \r\n"+result);
        },
        function(error) {
            alert("Error: \r\n"+error);
        }
      );
      //locals.setObject("collection",new Map());

    }


由于时间观念写的不全,不懂的可以留言

    

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值