我已经制作了自己的cordova插件,但我无法使用它。 这是java文件。 myTest.java
package com.testplugin.test;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
public class myTest extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("giveHello")) {
String results = "Hello world";
callbackContext.success(results);
return true;
}
return false;
}
}
我的插件javascript文件mytest.js
var exec = require('cordova/exec');
module.exports = {
showhello: function(successCallback, errorCallback) {
exec(successCallback, errorCallback, "myTest", "giveHello", [null]);
}
}
这是plugin.xml
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-mytest" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>Test plugin</name>
<js-module name="myTest" src="www/mytest.js">
<clobbers target="myTest" />
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="myTest">
<param name="android-package" value="com.testplugin.test.myTest" />
</feature>
</config-file>
<source-file src="src/android/test/myTest.java" target-dir="src/com/testplugin/test" />
</platform>
但是当我在www文件夹中调用它时,在myapp.js
中myTest.showhello('myTest', success, error);
我收到了这个错误:
成功时出错callbackId:myTest1490933768:TypeError:对象myTest没有方法&#39; apply&#39;&#34;,source:file:///android_asset/www/cordova.js(312)<< >
有人会告诉我我犯了什么错误吗?错误是什么意思?
答案 0 :(得分:0)
编写js和java文件是不够的。您需要创建Plugin.xml并使用创建的java插件文件绑定js方法。例如。
<js-module src="www/android/proximity-notification.js" name="ProximityNotification">
<clobbers target="ProximityNotification" />
</js-module>
有关完整参考,请参阅https://cordova.apache.org/docs/en/latest/guide/platforms/android/plugin.html
答案 1 :(得分:0)
似乎我发现了自己的错。 它在mytest.js中
而不是showhello: function(successCallback, errorCallback)
,我必须做showhello: function(message, successCallback, errorCallback)