AMP

重要提示:此文档不适用于您当前选择的格式 email

amp-social-share

实验性
Bento

描述

用法

 

必需的脚本

<script async custom-element="amp-social-share" src="https://cdn.ampproject.org/v0/amp-social-share-1.0.js"></script>

用法

amp-social-share 组件显示社交平台的社交分享按钮。

目前,amp-social-share 生成的任何按钮(包括预配置提供商的按钮)都没有标签/可访问名称,该名称会暴露给辅助技术(如屏幕阅读器)。请务必包含带有描述性标签的 aria-label,否则这些控件只会作为未标记的“按钮”元素进行宣告。

示例:基本社交分享按钮

对于某些预配置的提供商,共享按钮会为您猜测一些默认值。它假设当前文档的规范 URL 是您想要共享的 URL,并且页面标题是您想要共享的文本。

<amp-social-share
  type="twitter"
  aria-label="Share on Twitter"
></amp-social-share>

示例:传递参数

当您想要将参数传递到共享端点时,可以指定 data-param-<attribute>,它将附加到共享端点。

<amp-social-share
  type="linkedin"
  width="60"
  height="44"
  data-param-text="Hello world"
  data-param-url="https://example.com/"
  aria-label="Share on LinkedIn"
>
</amp-social-share>

Linkedin 是预配置的提供商之一,因此您无需提供 data-share-endpoint 属性。

在有效的 AMP 文档之外独立使用

Bento 允许您在非 AMP 页面中使用 AMP 组件,而无需提交到完全有效的 AMP。您可以采用这些组件并将其放置在使用不支持 AMP 的框架和 CMS 的实现中。请在我们的指南在非 AMP 页面中使用 AMP 组件中了解更多信息。

要查找 amp-social-share 的独立版本,请参阅bento-social-share

预配置的提供商

amp-social-share 组件提供一些预配置的提供商,这些提供商知道它们的共享端点以及一些默认参数。

提供商 类型 参数
Web Share API(触发操作系统共享对话框) system
  • data-param-text:可选,默认为:“当前页面标题”
  • data-mode:可选,如果设置为 replace,则会删除所有其他共享选项。
电子邮件 email
  • data-param-subject:可选,默认为:当前页面标题
  • data-param-body:可选,默认为:rel=canonical URL
  • data-param-recipient:可选,默认为:''(空字符串)
Facebook facebook
  • data-param-app_id必需,默认为:none。此参数是Facebook Share 对话框所需的 Facebook app_id
  • data-param-href:可选,默认为:rel=canonical URL
  • data-param-quote:可选。可用于共享引述或文本。
LinkedIn linkedin
  • data-param-url:可选,默认为:rel=canonical URL
Pinterest pinterest
  • data-param-media:可选(但强烈建议设置),默认为:none。要在 Pinterest 上共享的媒体的 URL。如果未设置,则会要求最终用户通过 Pinterest 上传媒体。
  • data-param-url:可选,默认为:rel=canonical URL
  • data-param-description:可选,默认为:当前页面标题
Tumblr tumblr
  • data-param-url:可选,默认为:rel=canonical URL
  • data-param-text:可选,默认为:当前页面标题
Twitter twitter
  • data-param-url:可选,默认为:rel=canonical URL
  • data-param-text:可选,默认为:当前页面标题
Whatsapp whatsapp
  • data-param-text:可选,默认为:“当前页面标题 - 当前页面 URL”
LINE line
  • data-param-url:可选,默认为:rel=canonical URL
  • data-param-text:可选,默认为:当前页面标题
SMS sms
  • data-param-body:可选,默认为:rel=title - rel=canonical URL

未配置的提供商

除了预配置的提供商之外,您还可以通过在 amp-social-share 组件中指定其他属性来使用未配置的提供商。

示例:为未配置的提供商创建共享按钮

以下示例通过将 data-share-endpoint 属性设置为 Facebook Messenger 自定义协议的正确端点,为 Facebook Messenger 创建一个共享按钮。

<amp-social-share
  type="facebookmessenger"
  data-share-endpoint="fb-messenger://share"
  data-param-text="Check out this article: TITLE - CANONICAL_URL"
  aria-label="Share on Facebook Messenger"
>
</amp-social-share>

由于这些提供商未预先配置,因此您需要为提供商创建适当的按钮图像和样式。

变量替换

您可以在 <amp-social-share> 元素中使用全局 AMP 变量替换。在下面的示例中,TITLE 将替换为页面标题,CANONICAL_URL 将替换为文档的规范 URL。

<amp-social-share
  type="whatsapp"
  data-param-text="Check out this article: TITLE - CANONICAL_URL"
>
</amp-social-share>

属性

type(必需)

选择提供商类型。这对于预配置和未配置的提供商都是必需的。

data-target

指定打开目标的位置。默认情况下,除 iOS 上的电子邮件/SMS 外,所有情况均为 _blank,在这种情况下,目标设置为 _top

请注意,我们只建议将此覆盖用于电子邮件。

data-share-endpoint

非配置的提供商需要此属性。

一些常用的提供商具有预配置的共享端点。有关详细信息,请参阅“预配置的提供商”部分。对于未配置的提供商,您需要指定共享端点。

data-param-*

所有 data-param-* 前缀的属性都将转换为 URL 参数并传递到共享端点。

aria-label

默认情况下,aria-label 属性将填充 Share by type,其中 'type' 是提供给组件的 type 属性。如果将非空值传递到 aria-label,则会覆盖默认值。

样式

默认样式

默认情况下,amp-social-share 包括一些流行的预配置提供商。这些提供商的按钮使用提供商的官方颜色和徽标进行样式化。默认宽度为 60 像素,默认高度为 44 像素。

访问AMP Start,获取您可以在 AMP 页面中使用的响应式、预先设置样式的共享链接。

自定义样式

有时您想要提供自己的样式。您可以像下面这样简单地覆盖提供的样式

amp-social-share[type='twitter'] {
  color: blue;
  background: red;
}

在自定义 amp-social-share 图标的样式时,请确保自定义图标符合提供商(例如 Twitter、Facebook 等)设置的品牌指南。

可访问性

焦点指示

amp-social-share 元素默认为蓝色轮廓作为可见焦点指示器。它还默认使用 tabindex=0,使用户可以在页面上一起使用多个 amp-social-share 元素时轻松地跟随制表符。

默认焦点指示器通过以下 CSS 规则集实现。

amp-social-share:focus {
  outline: #0389ff solid 2px;
  outline-offset: 2px;
}

可以通过为焦点定义 CSS 样式并将其包含在 AMP HTML 页面上的 style 标记中来覆盖默认焦点指示器。在下面的示例中,第一个 CSS 规则集通过将 outline 属性设置为 none 来删除所有 amp-social-share 元素上的焦点指示器。第二个规则集指定一个红色轮廓(而不是默认的蓝色),并将 outline-offset 设置为 3px,用于所有带有类 custom-focusamp-social-share 元素。

amp-social-share:focus{
  outline: none;
}

amp-social-share.custom-focus:focus {
  outline: red solid 2px;
  outline-offset: 3px;
}

使用这些 CSS 规则,除非 amp-social-share 元素包含类 custom-focus(在这种情况下,它们将具有红色轮廓指示器),否则它们不会显示可见的焦点指示器。

颜色对比度

请注意,type 值为 twitterwhatsapplineamp-social-share 将显示一个按钮,其前景色/背景色组合低于 WCAG 2.1 SC 1.4.11 非文本对比度中定义的非文本内容建议的 3:1 阈值。

如果没有足够的对比度,内容可能难以感知,因此难以识别。在极端情况下,对于有颜色感知障碍的人来说,低对比度的内容可能根本不可见。在上述共享按钮的情况下,用户可能无法适当地感知/理解共享控件是什么以及它们与什么服务相关。

版本说明

amp-social-share1.0 版本具有一些其他功能,使其与 0.1 版本有所不同。

  1. 预配置提供商的默认图标已更新,以反映其关联公司的最新徽标和颜色,因此在迁移到 1.0 时,请期待一组新的徽标。
  2. 现在可以使用 CSS 设置默认图标的前景色和背景色。有关更多信息,请参阅上面的“样式”部分。
  3. 现在包括对默认图标上的自定义徽标或文本的支持。如果 amp-social-share 组件有任何子元素,则现在将显示这些元素而不是默认图标。(在 0.1 中,它们会覆盖在现有图标上。)
需要更多帮助?

您已经阅读此文档十几次,但它实际上并未涵盖您的所有问题?也许其他人也有同样的感觉:在 Stack Overflow 上联系他们。

前往 Stack Overflow
发现 Bug 或缺少功能?

AMP 项目强烈鼓励您的参与和贡献!我们希望您能成为我们开源社区的长期参与者,但也欢迎您针对自己特别感兴趣的问题做出一次性的贡献。

前往 GitHub