2012-01-24 45 views
5

मैं फोन के लिए एक प्लगइन बनाना चाहता हूं जो जावास्क्रिप्ट और एंड्रॉइड के बीच मान पास करता है और देता है।जावास्क्रिप्ट और एंड्रॉइड से मूल्यों को पास करें और वापस करें और फोन अंतराल प्लगइन के रूप में उपयोग करें

क्या कोई इस बारे में कोई विचार सुझा सकता है कि यह कैसे करें?

उत्तर

14

असल में, यह बहुत मुश्किल नहीं है। यहाँ, मैं बताएंगे कि कैसे पृष्ठ के भीतर जावास्क्रिप्ट और उपाध्यक्ष प्रतिकूल से मूल कोड कॉल करने के लिए होगा: वेब दृश्य के भीतर से मूल कोड कॉलिंग

:
जब वेब दृश्य जावास्क्रिप्ट इंटरफ़ेस जोड़ने बनाने (मूल रूप से जावा वर्ग जिसका तरीकों वेब दृश्य में जावास्क्रिप्ट के माध्यम से कहा जा को उजागर किया जाएगा।

JavaScriptInterface jsInterface = new JavaScriptInterface(this); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(jsInterface, "JSInterface"); 

जावास्क्रिप्ट इंटरफ़ेस वर्ग खुद की परिभाषा (इस अनुकरणीय वर्ग मैं मेरा एक और उत्तर से लिया और देशी इरादे में वीडियो को खोलता है)

public class JavaScriptInterface { 
    private Activity activity; 

    public JavaScriptInterface(Activity activiy) { 
     this.activity = activiy; 
    } 

    public void startVideo(String videoAddress){ 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file 
     activity.startActivity(intent); 
    } 
} 

अब अगर आप इस कोड पेज आप निम्न विधि प्रदान की HTML फार्म कॉल करना चाहते हैं:

<script> 
    function playVideo(video){ 
     window.JSInterface.startVideo(video); 
    } 
</script> 

आसान है न?

मूल कोड से JavaScript कोड कॉलिंग:

<script> 
    function function(){ 
     //... do something 
    } 
</script> 

तो फिर तुम WebView के माध्यम से इस फ़ंक्शन को कॉल करें:
यह भी आप जावास्क्रिप्ट समारोह को परिभाषित किया है एचटीएमएल WebView में लोड की कोड में सरल लगता है ऐसे ही मूल कोड में:

webView.loadUrl("javascript:function()"); 
+0

हे धन्यवाद बोरिस: डी यह वही है जो मैं वास्तव में ढूंढ रहा हूं। मुझे वाकई यह पसंद है कि आपने विस्तार से बहुत ही सरल तरीके से लिखा है। जेजीडी, भगवान आपको आशीर्वाद देते हैं :) – Prax

+0

देशी कोड काम से जावास्क्रिप्ट कोड कॉल करें, लेकिन जावास्क्रिप्ट से जावा कोड – user280109

+0

@ user280109 पर एक मूल्य वापस करने के लिए आप इसे कैसे बदलते हैं: आपको कॉल में पैरामीटर मान जोड़ने की आवश्यकता है। यहां एक उदाहरण दिया गया है: http://stackoverflow.com/a/4330642/1108032 –

0

यहाँ एक PhoneGap प्लगइन बनाने के लिए एक tutorial है। ChildBrowser प्लगइन के लिए instructions भी विशेष रूप से अच्छा है।