Amp-html - 我可以使用amp-position-observer来调用amp-bind中使用的AMP.setState()吗?

问题描述:

是否可以使用放大器位置观测器设置AMP状态?Amp-html - 我可以使用amp-position-observer来调用amp-bind中使用的AMP.setState()吗?

我曾尝试下面的代码没有成功:

<!doctype html> 
<html ⚡> 
<head> 
    <script async="" src="https://cdn.ampproject.org/v0.js"></script> 
    <script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script> 
    <script custom-element="amp-position-observer" src="https://cdn.ampproject.org/v0/amp-position-observer-0.1.js" async></script> 
</head> 

<body> 
    <p [text]="'Hello ' + foo">Hello World</p> 
    <div class="spacer"></div> 
    <amp-position-observer 
    intersection-ratios="0" 
    on="enter:AMP.setState({foo: 'amp-bind'})" 
    layout="nodisplay"> 
    </amp-position-observer> 

</body> 
</html> 
+0

所采用的解决方案在相关的GitHub线程中解释:https://github.com/ampproject/amphtml/issues/11735 – Gab

这是不可能的设计。 setState是一种强大的(高度信任)操作,只能通过直接用户交互触发。滚动不被视为强大的用户交互信号。目前位置观察者只能触发低信任行为,如播放或寻找放大动画或视频。