我的服务器有一个端点来生成 .ics 文件 (
text/calendar
) 内容类型。
当我尝试通过 launchUrl 打开它时,我收到以下弹出屏幕 - 而不是标准的“添加到日历”弹出窗口。如果我直接在浏览器中使用此端点(而不是通过 Flutter) - 它工作正常。
这是我正在使用的代码:
launchUrl(Uri.parse('https://server.com/event.ics'), mode: LaunchMode.externalApplication);
我知道 add_2_calendar 和 device_calendar,但我不想在此处包含另一个依赖项,而只需打开普通浏览器即可。
我发现的最好的方法,实际上似乎有效,就是在 ics url 前面加上这个
https://calendar.google.com/calendar/r?cid=webcal://
因此,通过提供的示例,您将拥有:
launchUrl(Uri.parse('https://calendar.google.com/calendar/r?cid=webcal://https://server.com/event.ics'), mode: LaunchMode.externalApplication);
这将启动谷歌日历的网络版本,并允许订阅。 我发现打开 Android 日历应用程序的每一种方法,最终都没有真正使用订阅。