此接口用于一次回退多级页面。
说明
只允许 popTo
到当前 App 实例内的页面,不允许跨 appId 的跳转。
popTo 接口的使用方法
// 关闭当前打开的页面
AlipayJSBridge.call('popTo', {
index: -1
});
代码示例
关闭当前页面并且传递数据:
<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('.J_demo').addEventListener('click', function() { // 传递的 data 对象将会被即将露出的页面通过 resume 事件接收 AlipayJSBridge.call('popTo', { index: -1, // 回退到上一个页面,假如这个时候没有上一个页面,就会报错 data: { // 特别说明:data 是字典,不是数组 from: location.href, info: Date.now() } }, function(e) { // 添加回调,因为 popTo 不一定会成功(当前页面是唯一打开的页面的时候,会报错) alert(JSON.stringify(e)); }); }); }); </script>
通过
urlPattern
返回到符合正则表达式匹配的页面:<h1>返回到符合某个规则的 URL</h1> <h3></h3> <a href="javascript:void(0)" class="btn J_new_window">新窗口打开当前页面</a> <a href="javascript:void(0)" class="btn J_demo">返回</a> <script> var query = getQuery(); var depth = (+query.depth) || 0; document.querySelector('h3').innerHTML = '当前页面深度: ' + depth; function ready(callback) { // 如果 jsbridge 已经注入则直接调用 if (window.AlipayJSBridge) { callback && callback(); } else { // 如果没有注入则监听注入的事件 document.addEventListener('AlipayJSBridgeReady', callback, false); } } ready(function(){ document.querySelector('.J_demo').addEventListener('click', function() { AlipayJSBridge.call('popTo', { urlPattern: 'pop-to-url-pattern.html', }, function(e) { alert(JSON.stringify(e)); }); }); document.querySelector('.J_new_window').addEventListener('click', function() { AlipayJSBridge.call('pushWindow', { url: location.pathname + '?depth=' + (1+depth), }); }); }); </script>
API 说明
重要
一般情况下,
popTo
用于分多步才能完成的场景,比如用户信息完善时回退,三级地址选择后返回等。如果通过
urlPattern
来返回,popTo
会返回到离当前页面最远的页面,也就是栈底。同时不会去检测当前页面的 URL 是否符合。关于
popTo
时所带的数据如何被接收,请查看 页面恢复运行(resume 事件)。
AlipayJSBridge.call('popTo',{
index, urlPattern
}, fn)
index
、urlPattern
是两种查询模式,不应该同时使用。
入参
名称 | 类型 | 描述 | 必选 | 默认值 |
index | int | 目标界面在会话界面栈中的索引;如果小于零,则将与当前界面的 index 相加。 | Y | - |
urlPattern | string | 目标界面的 URL 匹配表达式,URL 如果包含 | Y | “” |
fn | function | 操作成功时,回调可能不被调用;操作失败时,回调函数执行。 | N | - |
出参
名称 | 类型 | 描述 |
result | undefined | 操作成功时,回调可能不被调用;result 不应被使用。 |
错误码
错误码 | 描述 |
10 | 未配置参数;无效的 index;未匹配 |
文档内容是否对您有帮助?