如何在Android上将日历活动从浏览器发布到日历应用?

时间:2013-10-15 13:06:11

标签: android http calendar icalendar

我有一个发布日历活动的网络服务:http://calevent.herokuapp.com。在iOS上,该URL将打开包含事件详细信息的日历弹出窗口以及允许用户添加到其日历的按钮。在我的主要Android设备上运行Android 4.1的Galaxy SIII,它会触发正常的文件下载。期望的行为类似于iOS。

该服务设置了两个重要的标题:

  • Content-Type: text/calendar; charset=utf-8
  • Content-Disposition: inline; filename="event.ics"

我已经解码了设备日历应用程序的清单,“S Planner”。它没有为BROWSABLE数据定义任何text/calendar意图过滤器。它定义的是一些谷歌日历特定的东西,我不确定我是否可以(ab)使用。

这是来自香草Calendar app

<activity android:name="GoogleCalendarUriIntentFilter" android:label="@string/app_label"
   android:theme="@android:style/Theme.NoDisplay"
   android:configChanges="orientation|keyboardHidden">

   <intent-filter
      android:priority="50">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="http" android:host="www.google.com" android:pathPrefix="/calendar/event" />
      <data android:scheme="https" android:host="www.google.com" android:pathPrefix="/calendar/event" />
      <data android:scheme="http" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
      <data android:scheme="https" android:host="www.google.com" android:pathPattern="/calendar/hosted/.*/event" />
   </intent-filter>
</activity>

这是死路一条吗?是否有其他解决方案不会影响用户体验?

1 个答案:

答案 0 :(得分:0)

<强>问题:

据我所知,Google提供Calendar个应用程序作为开源,Samsung,Htc,Sony等设备制造商用modify or publish their own application替换默认的应用程序Android source各自的Google代码。

所以有两种可能性: Samsung未在默认应用中添加此类功能,或event.ics已通过修改来源删除了该功能。

简而言之,要完成这项任务很困难,也可能是不可能的。

当我遇到这个问题时,我已经应用了以下解决方案。

<强>解决方案:

您可以在应用程序中显示类似用户界面的日历,并在其中表示事件。

要创建此类界面,您可以根据需要使用第三方库。

首先以编程方式读取{{1}}文件并提取其数据。 然后通过使用第三方库(如Caldroid),您可以在其中表示特定日期的事件。

我希望它会有所帮助!!