Подтвердить что ты не робот

Можете ли вы автоматически устанавливать даты в веб-браузере Android

У меня есть этот html:

<p>
    <a href="#" onclick="location.href='http://en.wikipedia.org/wiki/Sauropelta'; return false;">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. Когда есть дата или слово (завтра, в эту пятницу и т.д.), Он должен быть автоматически связан, поэтому дата может быть добавлена ​​в календарь.

Update:

Кто-нибудь знает, есть ли ex. javascript, который я могу добавить в приложение, которое будет выполнять эту работу для меня?

4b9b3361

Ответ 1

Да, это возможно.

Используйте метод 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

Ответ 2

Вы можете использовать ссылку для прямого перехода к определенной дате.

Где, дата = YYYYMMDD и режим = день/месяц в соответствии с вашими потребностями.

Надеюсь, это поможет.