我有这个HTML:
<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>
我想知道是否可以自动超链接日期,以便当用户按下它们时你可以将它们添加到用户(手机的)日历中吗? 这应该如何运作的一个很好的例子是Gmail。如果有日期或单词(明天,本周五等),则应自动链接,以便将日期添加到日历中。
更新
有没有人知道是否有前任。我可以添加到将为我做这项工作的应用程序的JavaScript吗?
答案 0 :(得分: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)
让主机应用程序有机会在新的时候接管控件 url即将加载到当前的WebView中。
http://developer.android.com/reference/android/webkit/WebViewClient.html
Android日历提供商
http://developer.android.com/guide/topics/providers/calendar-provider.html
答案 1 :(得分:0)