You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Google Calendar笔记中的Deep Link在Android端可点击?

  • 场景:将格式为appname://timer?2000sec&ringtone?jinglebells的Deep Link存入Google Calendar笔记字段
  • iOS表现:正常识别为可点击红色链接,能唤起对应应用
  • Android表现:仅显示纯文本,无法识别为可点击链接
  • 已确认项:AndroidManifest.xml配置正确(Chrome打开含该链接的HTML页面可正常唤起应用),使用Flutter框架及add_2_calendar包

附当前AndroidManifest.xml相关配置:

<!-- Deep linking, this is under the mainActivity <activity> tag -->
<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="rheinbahnnextgen" />
</intent-filter>

可行解决思路

1. 修正Deep Link的参数格式

原链接的参数写法不符合标准URL规范(&ringtone?jinglebells应为&ringtone=jinglebells),Google Calendar Android版对非标准格式的链接识别率较低,调整为标准格式后再测试:

rheinbahnnextgen://timer?sec=2000&ringtone=jinglebells

2. 用HTML锚标签包裹链接

如果add_2_calendar支持向笔记传入HTML内容,尝试用锚标签包裹链接:

<a href="rheinbahnnextgen://timer?sec=2000&ringtone=jinglebells">启动计时器</a>

若当前包不支持HTML笔记,可考虑修改add_2_calendar的源码,或直接调用Calendar原生API创建事件,传入带HTML格式的笔记内容。

自定义Scheme在系统应用中的识别优先级低于App Links,可配合已配置的autoVerify="true",补充App Links配置:

  1. 在你的域名下放置assetlinks.json验证文件
  2. 在Manifest的intent-filter中添加HTTPS协议的data节点:
<data android:scheme="https" android:host="你的域名" />
  1. 将链接改为https://你的域名/timer?sec=2000&ringtone=jinglebells,这类链接更易被Google Calendar识别。

4. 检查Calendar版本与设置

  • 确保Google Calendar是最新版本,旧版本对自定义Scheme的支持存在局限
  • 检查Calendar应用设置中的「链接预览」功能是否开启(通常在通用/显示设置栏)

内容的提问来源于stack exchange,提问作者Maritn Ge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 02:55:22