当一个 WebView 界面重新回到栈顶时,例如从后台被唤起、锁屏界面恢复、从下一页面回退,会触发页面恢复运行(resume
)事件。
如果这个界面是通过 popWindow
或 popTo
到达,且传递了 data
参数,则此页可以获取到这些参数。
如果在界面的 resume
之前先发生了 App 的 resume
,则 event
还会有一个resumeParams
,包含 app resume
时接收到的参数。
说明
对于 10.0.15 以上版本的客户端,容器新增了
pageResume
和appResume
事件,用于区分业务中具体哪种情况触发resume
。 页面恢复运行(resume
)= 客户端从后台被唤起、锁屏界面恢复(appResume
)+ 窗口从下个页面回退后恢复显示(pageResume
)。由于 Android 原生的
resume
和pause
事件不能区分是压后台导致还是页面切换导致,所以pageRe
sume 和pagePause
事件是通过 JSAPI 调用记录回调的,仅适用于同一个session
内 Window 之间的互相切换。对于startApp
和其他客户端直接切换页面方式不生效,例如chooseImage
。
resume 接口使用方法
document.addEventListener('resume', function(e) {
console.log("resumed");
}, false);
代码示例
以下示例为带有数据的返回:
<h1>点击"打开新页面",然后返回时,会带数据回这个页面</h1>
<a href="#" class="btn J_demo">打开新页面</a>
<script>
function ready(callback) {
// 如果 jsbridge 已经注入则直接调用
if (window.AlipayJSBridge) {
callback && callback();
} else {
// 如果没有注入则监听注入的事件
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function() {
document.querySelector('a').addEventListener('click', function() {
AlipayJSBridge.call('pushWindow', {
url: location.pathname
});
});
document.addEventListener('back', function(e) {
e.preventDefault();
AlipayJSBridge.call('popWindow', {
data: {
from: location.href,
info: Date.now()
}
});
});
document.addEventListener('resume', function(event) {
alert('页面回退时带过来的内容: ' + JSON.stringify(event.data));
});
});
</script>
API
出参
事件处理函数的 event 参数有以下属性:
名称 | 类型 | 描述 |
data | Object | 当前 App 实例内 |
resumeParams | Object | 包含 |
文档内容是否对您有帮助?