Android 如何在phonegap中创建toast?

Android 如何在phonegap中创建toast?,android,cordova,toast,Android,Cordova,Toast,如何使用phonegap/cordova在android应用程序中创建toast 塔克斯 是PhoneGap的开源(MIT许可)桥梁,允许您这样做。首先创建一个toasPlugin.java package com.company.plugins; import org.apache.cordova.api.CallbackContext; import org.apache.cordova.api.CordovaPlugin; import org.json.JSONArray; impor

如何使用phonegap/cordova在android应用程序中创建toast


塔克斯

是PhoneGap的开源(MIT许可)桥梁,允许您这样做。

首先创建一个
toasPlugin.java

package com.company.plugins;

import org.apache.cordova.api.CallbackContext;
import org.apache.cordova.api.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;

import android.util.Log;
import android.widget.Toast;

public class ToastPlugin extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args,
            CallbackContext callbackContext) throws JSONException {

        String message = args.getString(0);

        // used to log the text and can be seen in LogCat
        Log.d("Toast Plugin", "Calling the Toast...");
        Log.d("Toast Plugin", message);

        if (action.equals("shortToast")) {          
            this.shortToast(message, callbackContext);
            return true;
        } else if (action.equals("longToast")) {
            this.longToast(message, callbackContext);
            return true;
        }
        return false;
    }

    private void shortToast(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            Toast.makeText(cordova.getActivity().getApplicationContext(),
                    message, Toast.LENGTH_SHORT).show();
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }

    private void longToast(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            Toast.makeText(cordova.getActivity().getApplicationContext(),
                    message, Toast.LENGTH_LONG).show();
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }
}

然后创建一个
toasplugin.js


在项目中链接这些文件,现在您可以调用
JavaScript
作为:

  • 简短的祝酒词(“这里有简短的祝酒词…”)
  • longToast(“这里有长长的祝酒词……”)
寻找一个通用的iOS/Android/WP8 Toast插件,请查看此插件:

此外,对于新的phonegap版本(我认为是3.0以后的版本),
导入org.apache.cordova.api.CallbackContext;导入org.apache.cordova.api.CordovaPlugin
应替换为
import org.apache.cordova.CallbackContext;导入org.apache.cordova.CordovaPlugin嗨,我用过上面的代码。但是我得到了一个错误
10-01 01:51:44.653:W/System.err(1312):java.lang.ClassNotFoundException:com.company.plugins.ToastPlugin
这个错误表明您没有放入类或者没有编译。。。。然后,发布它:)
//Plugin file should be always after cordova.js
//There is always better way to create, but this also works

window.shortToast = function(str, callback) {   
    cordova.exec(callback, function(err) {
        callback('Nothing to echo.');
    }, "ToastPlugin", "shortToast", [ str ]);
};

window.longToast = function(str, callback) {
    cordova.exec(callback, function(err) {
        callback('Nothing to echo.');
    }, "ToastPlugin", "longToast", [ str ]);
};