声明 Action
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
schema.org 中的 Action 表示可对结构化数据执行的动词或活动。支持多种类型的操作,并且所有这些操作都可以使用类似的结构化数据进行定义。
前往操作
如果您使用 schema.org 实体为内容添加了标记,则可以为这些实体添加“前往”操作。例如,如需让 EmailMessage
实体具有 ViewAction
“前往”链接,请填充电子邮件的 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>
请注意,不支持电子邮件架构的其他电子邮件客户端会自动忽略上述标记。
移动深层链接
前往操作还可以直接链接到 Android 和 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>
延伸阅读
如需详细了解操作,请参阅:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-29。
[null,null,["最后更新时间 (UTC):2025-08-29。"],[],[],null,["# Declare Actions\n\nAn Action in schema.org represents a verb or activity that can be performed on a piece of structured data. Multiple types of [actions](/workspace/gmail/markup/actions/actions-overview) are supported and they can all be defined with similar structured data.\n\nGo-To Actions\n-------------\n\nIf you add markup to your content with schema.org entities, you can add Go-To actions for them. For example, to make an `EmailMessage` entity have a `ViewAction` Go-To link, populate the email's `potentialAction` property, as in the following example: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"potentialAction\": {\n \"@type\": \"ViewAction\",\n \"target\": \"https://watch-movies.com/watch?movieId=abc123\",\n \"name\": \"Watch movie\"\n },\n \"description\": \"Watch the 'Avengers' movie online\"\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/ViewAction\"\u003e\n \u003clink itemprop=\"target\" href=\"https://watch-movies.com/watch?movieId=abc123\"/\u003e\n \u003cmeta itemprop=\"name\" content=\"Watch movie\"/\u003e\n \u003c/div\u003e\n \u003cmeta itemprop=\"description\" content=\"Watch the 'Avengers' movie online\"/\u003e\n \u003c/div\u003e\n\nNote that the markup above is automatically ignored by other email clients that do not support schemas in emails.\n\nMobile Deep Linking\n-------------------\n\nGo-To actions can also link directly to content in native mobile apps on\n[Android](https://developer.android.com/training/app-indexing/deep-linking.html) and\n[iOS](https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). To deep link to\nan app, include additional `target` URLs encoded with the `android-app://` and `ios-app://` schemes as shown below: \n\n### JSON-LD\n\n \"target\": [\n \"\u003cweb url\u003e\",\n \"android-app://\u003candroid package name\u003e/\u003cscheme\u003e/\u003chost\u003e/\u003cpath+query\u003e\",\n \"ios-app://\u003cApp store ID\u003e/\u003cscheme\u003e/\u003chost\u003e\u003cpath+query\u003e\"\n ]\n\n### Microdata\n\n \u003clink itemprop=\"target\" href=\"\u003cweb url\u003e\"/\u003e\n \u003clink itemprop=\"target\" href=\"android-app://\u003candroid package name\u003e/\u003cscheme\u003e/\u003chost\u003e/\u003cpath+query\u003e\"/\u003e\n \u003clink itemprop=\"target\" href=\"ios-app://\u003cApp store ID\u003e/\u003cscheme\u003e/\u003chost\u003e/\u003cpath+query\u003e\"/\u003e\n\nExtending the previous `EmailMessage` example: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"name\": \"Watch movie\",\n ... information about the movie ...\n \"potentialAction\": {\n \"@type\": \"ViewAction\",\n \"target\": [\n \"https://watch-movies.com/watch?movieId=abc123\",\n \"android-app://com.watchmovies.app/http/watch-movies.com/watch?movieId=abc123\",\n \"ios-app://12345/movieapp/watch-movies.com/watch?movieId=abc123\"\n ]\n }\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cmeta itemprop=\"name\" content=\"Watch movie\"/\u003e\n ... information about the movie ...\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/ViewAction\"\u003e\n \u003cmeta itemprop=\"target\" content=\"https://watch-movies.com/watch?movieId=abc123\"/\u003e\n \u003cmeta itemprop=\"target\" content=\"android-app://com.watchmovies.android/http/watch-movies.com/watch?movieId=abc123\"/\u003e\n \u003cmeta itemprop=\"target\" content=\"ios://12345/movieapp/watch-movies.com/watch?movieId=abc123\"/\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\nIf the user doesn't have your app, the action takes the user to the web URL you provide.\n\nIn-App Actions\n--------------\n\nIn-App Actions are handled in-place, inside Gmail, without sending the user to another website. In-App Actions are declared like [Go-To Actions](#go-to_actions), but contain extra information that makes it easy for user-agents (such as Gmail) to handle the action inline.\n\nInstead of declaring an action with a `target`, you need to declare an `HttpActionHandler` for the action with the proper configuration.\n\nFor instance, you can add a confirm button to emails requiring users to approve, confirm, and acknowledge something. Once the user clicks on the button, an HTTP request will be issued from Google to your service, recording the confirmation. `ConfirmAction` can only be interacted with once.\n\nThe following example adds a `ConfirmAction` button to an email about an expense report: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"potentialAction\": {\n \"@type\": \"ConfirmAction\",\n \"name\": \"Approve Expense\",\n \"handler\": {\n \"@type\": \"HttpActionHandler\",\n \"url\": \"https://myexpenses.com/approve?expenseId=abc123\"\n }\n },\n \"description\": \"Approval request for John's $10.13 expense for office supplies\"\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/ConfirmAction\"\u003e\n \u003cmeta itemprop=\"name\" content=\"Approve Expense\"/\u003e\n \u003cdiv itemprop=\"handler\" itemscope itemtype=\"http://schema.org/HttpActionHandler\"\u003e\n \u003clink itemprop=\"url\" href=\"https://myexpenses.com/approve?expenseId=abc123\"/\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n \u003cmeta itemprop=\"description\" content=\"Approval request for John's $10.13 expense for office supplies\"/\u003e\n \u003c/div\u003e\n\nExpiring Actions\n----------------\n\nIn many cases, actions are only relevant for a limited period of time. Actions associated to entities with known dates, like travel reservations, will automatically expire. Gmail doesn't display the action after the trip has passed.\n\nExpirations can also be explicitly added to actions. For example, an action to clip a coupon or save an offer code might only be valid for a limited time. To set the time window for when an action is displayed, set the `startTime` and `endTime` properties of the action: \n\n### JSON-LD\n\n \u003cscript type=\"application/ld+json\"\u003e\n {\n \"@context\": \"http://schema.org\",\n \"@type\": \"EmailMessage\",\n \"potentialAction\": {\n \"@type\": \"ConfirmAction\",\n \"name\": \"Save coupon\",\n \"handler\": {\n \"@type\": \"HttpActionHandler\",\n \"url\": \"https://my-coupons.com/approve?couponId=abc123\"\n },\n \"startTime\": \"2015-06-01T12:00:00Z\",\n \"endTime\": \"2015-06-05T12:00:00Z\"\n }\n }\n \u003c/script\u003e\n\n### Microdata\n\n \u003cdiv itemscope itemtype=\"http://schema.org/EmailMessage\"\u003e\n \u003cdiv itemprop=\"potentialAction\" itemscope itemtype=\"http://schema.org/ConfirmAction\"\u003e\n \u003cmeta itemprop=\"name\" content=\"Save coupon\"/\u003e\n \u003cdiv itemprop=\"handler\" itemscope itemtype=\"http://schema.org/HttpActionHandler\"\u003e\n \u003clink itemprop=\"url\" href=\"https://my-coupons.com/approve?couponId=abc123\"/\u003e\n \u003c/div\u003e\n \u003cmeta itemprop=\"startTime\" content=\"2015-06-01T12:00:00Z\" /\u003e\n \u003cmeta itemprop=\"endTime\" content=\"2015-06-05T12:00:00Z\" /\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\nFurther Reading\n---------------\n\nFor more details about Actions, see:\n\n- [Handling Action Requests](/workspace/gmail/markup/actions/handling-action-requests)\n- [Securing Actions](/workspace/gmail/markup/actions/securing-actions)\n- [Android Deep Linking](https://developer.android.com/training/app-indexing/deep-linking.html)\n- [iOS Deep Linking](https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1)\n\n| **Note:** Some of the schemas used by Google are still going through the standardization process of [schema.org](http://schema.org), and therefore, may change in the future. [Learn More](/workspace/gmail/markup/reference/schema-org-proposals)."]]