使用AMP在可禁用的滑入式面板上实现cookie

时间:2018-11-22 15:15:19

标签: wordpress cookies amp-html amp-bind

我正在我们的网站上实施滚动式新闻简报注册表单,该表单以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}})。

任何建议将不胜感激。

克里斯

1 个答案:

答案 0 :(得分:0)

您是正确的amp-user-notification是正确的方法。在修复amp-iframe错误之前,是否有办法在AMP中实现新闻稿形式?

另一种方法是使用amp-access,它允许您在页面加载时更改页面的布局。您必须使用READER_ID来标识用户,但必须在服务器端存储用户首选项。存储此服务器端是必需的,因为如果由于ITP 2.0而从AMP缓存提供页面,则可能无法编写cookie。