schema.org 中的 Action 表示可对结构化数据执行的动词或活动。系统支持多种类型的操作,并且可以使用类似的结构化数据来定义所有这些操作。
Go-To 操作
如果您使用 schema.org 实体向内容添加标记,则可以为其添加 Go-To 操作。例如,如需让 EmailMessage 实体具有
ViewAction Go-To 链接,请填充电子邮件的 potentialAction 属性,如以下示例所示:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://watch-movies.com/watch?movieId=abc123",
"name": "Watch movie"
},
"description": "Watch the 'Avengers' movie online"
}
</script>
微数据
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="target" href="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="name" content="Watch movie"/>
</div>
<meta itemprop="description" content="Watch the 'Avengers' movie online"/>
</div>
请注意,上述标记会被不支持电子邮件架构的其他电子邮件客户端自动忽略。
移动深层链接
iOS如需深层链接到
应用,请添加使用 android-app:// 和 ios-app:// 架构编码的其他 target 网址,如下所示:
JSON-LD
"target": [
“<web url>”,
“android-app://<android package name>/<scheme>/<host>/<path+query>”,
“ios-app://<App store ID>/<scheme>/<host><path+query>"
]
微数据
<link itemprop="target" href="<web url>"/>
<link itemprop="target" href="android-app://<android package name>/<scheme>/<host>/<path+query>”/>
<link itemprop="target" href="ios-app://<App store ID>/<scheme>/<host>/<path+query>"/>
扩展之前的 EmailMessage 示例:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"name": "Watch movie",
... information about the movie ...
"potentialAction": {
"@type": "ViewAction",
"target": [
"https://watch-movies.com/watch?movieId=abc123",
"android-app://com.watchmovies.app/http/watch-movies.com/watch?movieId=abc123",
"ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123"
]
}
}
</script>
微数据
<div itemscope itemtype="http://schema.org/EmailMessage">
<meta itemprop="name" content="Watch movie"/>
... information about the movie ...
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ViewAction">
<meta itemprop="target" content="https://watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="android-app://com.watchmovies.android/http/watch-movies.com/watch?movieId=abc123"/>
<meta itemprop="target" content="ios://12345/movieapp/watch-movies.com/watch?movieId=abc123"/>
</div>
</div>
如果用户没有您的应用,该操作会将用户转到您提供的网址。
应用内操作
应用内操作在 Gmail 内就地处理,不会将用户发送到其他网站。应用内操作的声明方式与 Go-To 操作 类似,但包含额外信息,方便用户代理(例如 Gmail)内嵌处理操作。
您需要为操作声明 HttpActionHandler 并进行适当的配置,而不是使用 target 声明操作。
例如,您可以向需要用户批准、确认和确认某些内容的电子邮件添加确认按钮。用户点击该按钮后,Google 会向您的服务发出 HTTP
请求,记录确认信息。ConfirmAction 只能互动一次。
以下示例向有关费用报告的电子邮件添加了 ConfirmAction 按钮:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Approve Expense",
"handler": {
"@type": "HttpActionHandler",
"url": "https://myexpenses.com/approve?expenseId=abc123"
}
},
"description": "Approval request for John's $10.13 expense for office supplies"
}
</script>
微数据
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Approve Expense"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://myexpenses.com/approve?expenseId=abc123"/>
</div>
</div>
<meta itemprop="description" content="Approval request for John's $10.13 expense for office supplies"/>
</div>
过期操作
在许多情况下,操作仅在有限的时间内有效。与具有已知日期的实体(例如旅行预订)关联的操作将自动过期。行程结束后,Gmail 不会显示该操作。
您还可以明确为操作添加过期时间。例如,剪辑优惠券或保存优惠代码的操作可能仅在有限的时间内有效。如需设置操作的显示时间窗口,请设置操作的
startTime 和 endTime 属性:
JSON-LD
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Save coupon",
"handler": {
"@type": "HttpActionHandler",
"url": "https://my-coupons.com/approve?couponId=abc123"
},
"startTime": "2015-06-01T12:00:00Z",
"endTime": "2015-06-05T12:00:00Z"
}
}
</script>
微数据
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/ConfirmAction">
<meta itemprop="name" content="Save coupon"/>
<div itemprop="handler" itemscope itemtype="http://schema.org/HttpActionHandler">
<link itemprop="url" href="https://my-coupons.com/approve?couponId=abc123"/>
</div>
<meta itemprop="startTime" content="2015-06-01T12:00:00Z" />
<meta itemprop="endTime" content="2015-06-05T12:00:00Z" />
</div>
</div>
延伸阅读
如需详细了解操作,请参阅: