今天我开始构建自己的cordova插件。 我创建了一个简单的Toast插件,并尝试在我的Ionic应用程序中运行它。 但是当我尝试插件时出现错误。
好吧,让我们从我的插件目录开始:
这是我在\ src \ android \
中的CoolPlugin.javaimport org.apache.cordova.CordovaWebView;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaInterface;
import android.util.Log;
import android.provider.Settings;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class CoolPlugin extends CordovaPlugin {
public static final String TAG = "Cool Plugin";
/**
* Constructor.
*/
public CoolPlugin() {}
/**
* Sets the context of the Command. This can then be used to do things like
* get file paths associated with the Activity.
*
* @param cordova The context of the main Activity.
* @param webView The CordovaWebView Cordova is running in.
*/
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
Log.v(TAG,"Init CoolPlugin");
}
public boolean execute(final String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
final int duration = Toast.LENGTH_SHORT;
// Shows a toast
Log.v(TAG,"CoolPlugin received:"+ action);
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
Toast toast = Toast.makeText(cordova.getActivity().getApplicationContext(), action, duration);
toast.show();
}
});
return true;
}
}
这是我在/ www
中的CoolPlugin.jsvar exec = require('cordova/exec');
function CoolPlugin() {
console.log("CoolPlugin.js: is created");
}
CoolPlugin.prototype.showToast = function(aString){
console.log("CoolPlugin.js: showToast");
exec(function(result){
/*alert("OK" + reply);*/
},
function(result){
/*alert("Error" + reply);*/
},"CoolPlugin",aString,[]);
};
var coolPlugin = new CoolPlugin();
module.exports = coolPlugin;
这是我的所有插件目录.. 让我们转到我的离子项目。
这是我的HTML。
<input type="text" id="myText" text="Doh! I'm a Toast!"></input>
<button id="myButton" title="" onclick="showToast()">Generate Toast!</button>
<p>
</p>
<script type="text/javascript">
function showToast()
{
var textValue = document.getElementById("myText").value;
CoolPlugin.showToast(textValue);
}
function onDeviceReady() {
// console.log("Device ready");
}
document.addEventListener("deviceready", onDeviceReady, false);
</script>
我已经在我的项目中安装了该插件,并将<script src="CoolPlugin.js"></script>
放入我的index.html中。
最后我把CoolPlugin.js文件放在与index.php相同的目录中。
请检查我的错误。