वेबव्यू ऑब्जेक्ट के जावास्क्रिप्ट इंटरफ़ेस से मुख्य गतिविधि के तरीकों को कॉल करना संभव है? या इस इंटरफ़ेस से साझा किए गए संदर्भों तक पहुंचने के लिए, इसलिए मैं अपनी गतिविधि के साथ डेटा पढ़ सकता था? मैं अपनी गतिविधि को यह जानना चाहता हूं कि एक विशिष्ट जावास्क्रिप्ट कार्रवाई हुई।एंड्रॉइड वेबव्यू: कॉल गतिविधि विधियां जावास्क्रिप्ट इंटरफ़ेस
उत्तर
हां, जावास्क्रिप्ट और आपके आवेदन के बीच दो तरह का संचार WebView.addJavascriptInterface()
के माध्यम से संभव है। इस उदाहरण की जाँच करें:
http://android-developers.blogspot.com/2008/09/using-webviews.html
ठीक है, इस तरह की समस्या मेरी समस्या हल करती है। आपके द्वारा दिए गए उदाहरण में यह काम करता है, क्योंकि डेमो जावास्क्रिप्ट इंटरफेस वेबव्यूडेमो कक्षा का उप-वर्ग है और इसकी विधियों तक पहुंच सकता है। लेकिन जब यह सबक्लास नहीं है तो इसे हासिल करने का कोई तरीका है? – Krzychu
यह किसी भी 'WebViewDemo' विधियों का उपयोग नहीं करता है। यह केवल 'mHandler' का उपयोग करता है और इसे कन्स्ट्रक्टर को पास किया जा सकता है। – Caner
मैंने 'mandler' को पारित करने का प्रयास किया लेकिन मुख्य गतिविधि अभी भी पहुंच योग्य नहीं है। जब मैं 'mHandler.post (नया रननेबल() { सार्वजनिक शून्य रन() { mWebView.loadUrl (" जावास्क्रिप्ट: तरंग() "); } }); 'मुझे _myWebView को हल नहीं किया जा सकता है_ – Krzychu
आप इस लक्ष्य को हासिल करने के लिए WebView.addJavascriptInterface
फ़ंक्शन का उपयोग कर सकते हैं। और जानकारी: In Google documentation
आपकी गतिविधि:
/*
* entry point of the application starting the index.html of PhoneGap
* */
package com.test.my.myApp;
import org.apache.cordova.DroidGap;
import android.os.Bundle;
import android.util.Log;
import com.google.analytics.tracking.android.EasyTracker;
public class MyOpelMainActivitiy extends DroidGap
{
String curPhoneNumber;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/app/index.html",15000);
}
@Override
public void onStart() {
super.onStart();
this.appView.addJavascriptInterface(new JsInterface(), "android");
curPhoneNumber = "test";
// The rest of your onStart() code.
EasyTracker.getInstance().activityStart(this); // Add this method.
}
@Override
public void onDestroy()
{
super.onDestroy();
com.google.analytics.tracking.android.EasyTracker.getInstance().activityStop(this);
}
public class JsInterface{
public String getPhoneNumber()
{
// Here call any of the public activity methods....
return curPhoneNumber;
}
}
}
HTML मार्कअप:
<script type="text/javascript">
alert(android.getPhoneNumber());
</script>
=================== ================================================== ===
api17 + के लिए इस उदाहरण में getPhoneNumber को एनोटेशन @ android.webkit.JavascriptInterface होना चाहिए – MazarD
- 1. एंड्रॉइड एसडीके वेबव्यू कॉल गतिविधि
- 2. एंड्रॉइड 4.2.1, वेबव्यू और जावास्क्रिप्ट इंटरफ़ेस
- 3. जावास्क्रिप्ट एक वेबव्यू गतिविधि
- 4. एंड्रॉइड वेबव्यू क्लाइंट गतिविधि सूचक
- 5. एंड्रॉइड वेबव्यू - जावास्क्रिप्ट
- 6. जावास्क्रिप्ट एंड्रॉइड वेबव्यू
- 7. एंड्रॉइड वेबव्यू जावास्क्रिप्ट getSelection
- 8. एंड्रॉइड वेबव्यू
- 9. एंड्रॉइड वेबव्यू, ACTION_VIEW गतिविधि शुरू करें जब यूआरएल को वेबव्यू
- 10. ब्राउज़र में जावास्क्रिप्ट इंटरफ़ेस जोड़ना
- 11. एंड्रॉइड वेबव्यू रीडायरेक्ट लूप
- 12. एंड्रॉइड वेबव्यू
- 13. संपत्तियों से एंड्रॉइड वेबव्यू जावास्क्रिप्ट
- 14. एक्सटेंशन विधियां इंटरफ़ेस
- 15. एंड्रॉइड वेबव्यू
- 16. एंड्रॉइड वेबव्यू
- 17. एंड्रॉइड: वेबव्यू
- 18. एंड्रॉइड वेबव्यू
- 19. एंड्रॉइड वेबव्यू
- 20. एंड्रॉइड - वेबव्यू
- 21. एंड्रॉइड वेबव्यू
- 22. एंड्रॉइड वेबव्यू
- 23. एंड्रॉइड वेबव्यू - इंटरसेप्ट क्लिक
- 24. एंड्रॉइड: वेबव्यू एक्शनबार (हनीकॉम)?
- 25. एंड्रॉइड वेबव्यू जियोपोजिशन डेटाबेस
- 26. एंड्रॉइड वेबव्यू
- 27. एंड्रॉइड: फोनगैप बनाम वेबव्यू
- 28. एंड्रॉइड Async डेटा लोडिंग विधियां
- 29. एंड्रॉइड वेबव्यू + रिमोट एजेक्स कॉल्स को एंड्रॉइड वेबव्यू + jquery मोबाइल
- 30. एंड्रॉइड त्रुटि कॉल करते समय "requestWindowFeature (Window.FEATURE_PROGRESS);" गतिविधि
संभावित ब्राउज़र का एक डुप्लिकेट [ब्राउज़र में जावास्क्रिप्ट इंटरफ़ेस जोड़ना] (http://stackoverflow.com/questions/3765860/adding-javasc रिप्ट-इंटरफेस-टू-ए-ब्राउजर) – skolima