ionic 插件开发--成功安装自己的插件后 js调用插件一直提示undefined
发布于 2年前 作者 xiaoshitou 2362 次浏览 来自 问答

dataUtils.js: js文件 var exec = require(‘cordova/exec’); var utilExport ={}; utilExport.getByteFromBase64 = function(mills,callback,err) { exec(function(winParam){ callback(winParam); }, function(errParam){ err(errParam); }, "DataUtils", "base64Tbyte", [mills]); }; module.exports = utilExport;

plugin.xml: 插件配置文件 <js-module src="www/dataUtils.js" name="dataUtils"> <clobbers target="dataUtils" /> </js-module> <platform name="android"> <config-file target="res/xml/config.xml" parent="/*"> <feature name="DataUtils"> <param name="android-package" value="com.yyb.datautils.DataUtils" /> </feature> </config-file> <source-file src="com/yyb/datautils/DataUtils.java" target-dir="src/com/yyb/datautils" /> </platform>

** DataUtils.java** ** java文件** package com.yyb.datautils; … CallbackContext callbackContext; public boolean execute(String action, JSONArray args,CallbackContext callbackContext) throws JSONException { this.callbackContext = callbackContext; if (action.equals(“base64Tbyte”)) { message = args.getString(0); Log.i("DataUtils", message); byte[] result = base64Tbyte(message); if(result==null){ callbackContext.error(“args :base64 data is null”); }else{ callbackContext.success(result); } return true; } return false; } ** ionic工程调用插件** 安装提示成功 工程也重新build了 if (typeof dataUtils == ‘undefined’) { console.error(“dataUtils is undefined” ); //一直会走到这里 郁闷 } var param = "eXliMTIzcXdl"; dataUtils.getByteFromBase64(param,function (byteData) { console.info(base64Data); }, function (err) { console.error(err); });

5 回复

查看一下android工程下的 assets/www/cordova_plugins.xml 和 res/config.xml 中有没有自定义插件的配置

都有,检查过了,还可能其他问题吗?

cordova_plugins.js { "file": "plugins/com.yyb.dataUtils/www/dataUtils.js", "id": "com.yyb.dataUtils.dataUtils", "clobbers": [ “dataUtils” ] } ** config.xml** <feature name="DataUtils"> <param name="android-package" value="com.yyb.datautils.DataUtils" /> </feature>

这都没问题啊

@xiaoshitou 把你的插件浮附上来,大家查看查看

已解决,谢谢@zhanyz。问题是开始定义dataUtils.js 的时候没有加var utilExport ={}; 后来加上后没有重新build,看来还是js知识懂得太少,以后要努力了

回到顶部