ReferenceError:未定义ShowToast

时间:2015-11-03 08:16:31

标签: javascript android cordova

今天我开始构建自己的cordova插件。 我创建了一个简单的Toast插件,并尝试在我的Ionic应用程序中运行它。 但是当我尝试插件时出现错误。

好吧,让我们从我的插件目录开始:

这是我在\ src \ android \

中的CoolPlugin.java
import 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.js
var 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相同的目录中。

请检查我的错误。

0 个答案:

没有答案