简述: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技术更上一层楼