我正在我们的网站上实施滚动式新闻简报注册表单,该表单以AMP原生语言构建。
我添加了一个按钮,该按钮使用amp-bind来隐藏div,但我一直在努力寻找如何在AMP中使用cookie / localStorage保存关闭状态的方法。
我已经浏览了最喜欢的按钮示例代码-https://ampbyexample.com/advanced/favorite_button/(如SE此处所建议),但我看不到它与该特定用例有何关系,尤其是在使用amp-清单。
根据我已阅读的内容和几个示例,我发现需要凭据=“ include”属性,有效的CORS json端点和使用AMPs变量替换附加到端点url的自动生成的客户端ID也是需要的,但是我我不确定如何将它们放在一起。
我使用最喜欢的按钮示例进行了一次黑客入侵,但是本教程并没有过多说明如何设置CORS端点,并且该特定示例用于将多个喜欢存储到单个端点,就像存储一个特定用户查看首选项。
这是我在代码中粗暴的戳刺:
<form method="post"
id="side-newsletter-wrap"
action-xhr="/prefs&clientId=CLIENT_ID(prefs)"
target="_top"
on="submit:AMP.setState({
showSideNewsletter: !showSideNewsletter
});
submit-error:AMP.setState({
showSideNewsletter: !showSideNewsletter
});">
<button on="tap:side-newsletter-wrap.hide" class="close-button"><i
class="fa fa-times"></i></button>
<amp-list width="320"
height="360"
credentials="include"
items="."
single-item
src="/prefs&clientId=CLIENT_ID(prefs)">
<template type="amp-mustache">
{{#.}}
<?php winefolly_load_fragment('newsletter-embed'); ?>
{{/.}}
{{^.}}{{/.}}
</template>
</amp-list>
</form>
对于prefs端点,我想我需要在WordPress中注册一个新端点,该端点输出具有首选项的简单数组?
类似的东西:
{
showSideNewsletter: "true",
winesIndexView: "grid",
winesIndexSort: "title"
}
我还尝试了amp-user-notification组件(内置了关闭状态),但是感觉有点hacky,由于已知的错误,新闻通讯的嵌入代码(通过iframe)没有加载-{{ 3}})。
任何建议将不胜感激。
克里斯
答案 0 :(得分:0)
您是正确的amp-user-notification是正确的方法。在修复amp-iframe错误之前,是否有办法在AMP中实现新闻稿形式?
另一种方法是使用amp-access,它允许您在页面加载时更改页面的布局。您必须使用READER_ID来标识用户,但必须在服务器端存储用户首选项。存储此服务器端是必需的,因为如果由于ITP 2.0而从AMP缓存提供页面,则可能无法编写cookie。