MUI自定义插件(iOS版本)

简述:MUI自定义插件意思就是能与原生做交互(例如:iOS、Android),为什么要用自定义插件,那是因为手机部分功能MUI框架无法很好的实现或者解决,还有可能原生项目只是嵌入MUI部分功能需要交互来实现。

一:自定义插件开发步骤

(1).配置(web端与手机端做桥接)

    web文件manifest.json

    iOS文件feature.plist

(2).js通知iOS端

(3.)iOS拦截js端事件(接收js端参数)

二:具体实现

    1.配置

添加节点与json相对应,为了让web端找到ios本地文件

例如:plugintext类型dic  节点class LocationPlugin

2.js端代码

function fnCustomPlugin() {

    var _BARCODE = "plugintext"; //插件别名

    var B = window.plus.bridge;

    var plugintest = {

        // 声明异步返回方法

    PluginTestFunction: function(Argus1, Argus2, Argus3, Argus4, successCallback, errorCallback) {

        var success = typeof successCallback !== 'function' ? null : function(args) {

            successCallback(args);

        },

        fail = typeof errorCallback !== 'function' ? null : function(code) {

            errorCallback(code);

        };

        callbackID = B.callbackId(success, fail);

        // 通知Native层plugintest扩展插件运行”PluginTestFunction”方法

        return B.exec(_BARCODE, "locationFunctionArrayArgu", [callbackID, Argus1, Argus2, Argus3, Argus4]);

    }

    };

    window.plus.plugintest = plugintest;

}

3.ios端代码

注意:这里要注意的是iOS端创建一个类,类名自行定义需要倒入两个头文件

代码:

- (void)locationFunctionArrayArgu:(PGMethod *)commands{

    if (commands) {

        NSLog(@"commands:%@",commands.arguments);

        [[NSNotificationCenter defaultCenter] postNotificationName:@"location" object:nil];

    }

}

完美的实现了自定义插件的功能,最后祝大家2018技术更上一层楼

勿忘初心,方得始终

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容