2013-02-06 20 views

उत्तर

19

पहले एक ToastPlugin.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."); 
     } 
    } 
} 


फिर अपनी परियोजना में एक toastPlugin.js

//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 ]); 
}; 


लिंक ये फ़ाइल बनाने बनाने के लिए, अब आप के रूप में JavaScript में कॉल कर सकते हैं:

  • शॉर्टटास्ट ("यहां छोटा टोस्ट संदेश ...");
  • लांग टोस्ट ("लांग टोस्ट संदेश यहाँ ...");
+0

आप भूल गए अद्यतन करने के लिए "config.xml" –

+4

'<सुविधा नाम =" ToastPlugin "> उल्लेख करने के लिए <परम name = "android-package" value = "com.company.plugins.ToastPlugin" /> ' –

+2

इसके अलावा नए फोनगैप संस्करण (मुझे लगता है कि 3.0 आगे), 'import org.apache.cordova.api.CallbackContext; आयात org.apache.cordova.api.CordovaPlugin; '' import org.apache.cordova.CallbackContext के साथ प्रतिस्थापित किया जाना चाहिए; आयात org.apache.cordova.CordovaPlugin; ' –

7

PhoneGap-Toast फ़ोनगैप के लिए एक खुला स्रोत (एमआईटी-लाइसेंसीकृत) पुल है जो आपको ऐसा करने की अनुमति देता है।