2015-04-17 8 views
19

में दिनांक स्वत: लिंक कर सकते हैं मैं इस एचटीएमएल है:आप Android WebView

<p> 
    <a href="http://en.wikipedia.org/wiki/Sauropelta">sawr-o-pel-te</a> meaning 'lizard shield' 
</p> 
<p> 
    April 7th, 2015 
</p> 
<p> 
    4/7/2015 
</p> 
<p> 
    April 7th 
</p> 
<p> 
    Next Monday 6th<br> 
</p> 
<p> 
    202 E South St<br> 
    Orlando, FL 32801 
</p> 
<h3>Quick Facts</h3> 
<ul> 
    <li>One of the most well-understood nodosaurids<span></span></li> 
    <li>The earliest known genus of nodosaurid<span></span></li> 
    <li>Measured about 5 meters (16.5 ft) long<span></span></li> 
    <li>The tail made up nearly half of its body length</li> 
</ul> 
<span></span> 

और मुझे पता है कि अगर इसके संभव हो जाता है ताकि दिनांकों हाइपरलिंक करना जब उन पर उपयोगकर्ता प्रेस आप (उपयोगकर्ताओं के लिए उन्हें जोड़ सकते हैं चाहते हैं फोन का) कैलेंडर? यह एक अच्छा उदाहरण है कि यह कैसे काम करना चाहिए जीमेल है। जब कोई तिथि या शब्द होता है (कल, यह शुक्रवार, आदि ..) इसे स्वचालित रूप से लिंक किया जाना चाहिए ताकि दिनांक कैलेंडर में जोड़ा जा सके।

अद्यतन:

किसी भी एक अगर वहाँ एक पूर्व है पता है। जावास्क्रिप्ट जिसे मैं ऐप में जोड़ सकता हूं जो मेरे लिए यह काम करेगा?

+0

एक Android एप्लिकेशन के अंदर आपके प्रश्न पर एचटीएमएल है? –

+0

@PedroLobito आपके उत्तर के लिए धन्यवाद, लेकिन यह एचटीएमएल सर्वर की ओर से आ रहा है और मैं '# addtocalendar' टैग नहीं जोड़ सकता। तो क्या आपके मन में कोई अन्य कामकाज है? –

+0

हां, आप [वेबसाइट से एचटीएमएल स्रोत डाउनलोड कर सकते हैं] (http://stackoverflow.com/a/4571551/797495), प्रत्येक लिंक को रेगेक्स, या इसी तरह के टूल से कनवर्ट करें, और ट्रांसफॉर्म किए गए एचटीएमएल को वेब व्यू में ' loadData', यानी 'webView.loadData (stringWithHtml, "टेक्स्ट/एचटीएमएल; वर्णसेट = यूटीएफ -8", शून्य); ' –

उत्तर

5

हां, यह संभव है।

किसी निश्चित मूल्य वाले किसी भी लिंक को रोकने के लिए WebViewClient विधि shouldOverrideUrlLoading का उपयोग करें। मान लीजिए कि आप इस तरह एक लिंक बनाते हैं: अब

<a href="#addtocalendar"> April 7th, 2015 - Add to Calendar</a> 

, हम shouldOverrideUrlLoading इस्तेमाल करेंगे नल रोकना और घटना जोड़ने के लिए कैलेंडर, अर्थात्:

mWebView.setWebViewClient(new WebViewClient(){ 
     public boolean shouldOverrideUrlLoading(WebView wView, String url) 
     { 
      if (url.contains("addtocalendar")) { 
       Calendar cal = Calendar.getInstance();    
       Intent intent = new Intent(Intent.ACTION_EDIT); 
       intent.setType("vnd.android.cursor.item/event"); 
       intent.putExtra("allDay", false); 
       intent.putExtra("rrule", "FREQ=YEARLY"); //optional recurring event 
       intent.putExtra("beginTime", cal.getTimeInMillis()); 
       intent.putExtra("endTime", cal.getTimeInMillis()+3600000); // adds 1 hour 
       intent.putExtra("title", "Event on April 7th, 2015"); 
       startActivity(intent); 

       return true; 
      } 
     } 
}); 

निम्नलिखित जोड़े AndroidManifest.xml

<uses-permission android:name="android.permission.READ_CALENDAR" /> 
<uses-permission android:name="android.permission.WRITE_CALENDAR" /> 

करने के लिए अनुमति

shouldOverrideUrlLoading

boolean  shouldOverrideUrlLoading(WebView view, String url) 

मेजबान आवेदन नियंत्रण अपने हाथ में लेने के लिए जब एक नया यूआरएल के बारे में मौजूदा WebView में लोड किया जा रहा है एक मौका दीजिए।

http://developer.android.com/reference/android/webkit/WebViewClient.html


Android कैलेंडर प्रदाता

http://developer.android.com/guide/topics/providers/calendar-provider.html

0

आप इस link का उपयोग सीधे किसी विशेष तारीख पर जाने के लिए कर सकते हैं।

कहां, दिनांक = YYYYMMDD और मोड = दिन/माह आपकी आवश्यकता के अनुसार।

उम्मीद है कि इससे मदद मिलती है।

संबंधित मुद्दे