tt.disableAlertBeforeUnload
基础库 2.63.0 开始支持本方法,低版本需做兼容处理,这是一个异步方法。
关闭小程序页面返回询问对话框。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
支持沙盒 | 否 |
相关教程 | 无 |
语法
tt.disableAlertBeforeUnload(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
success | function | 否 | 接口调用成功的回调函数 | 2.63.0 | |
fail | function | 否 | 接口调用失败的回调函数 | 2.63.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 2.63.0 |
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "disableAlertBeforeUnload:ok" | 2.63.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "disableAlertBeforeUnload:fail" + 详细错误信息 | 2.63.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
<view class="container"> <view class="title">当前页面的路由层级:{{length}}</view> <view class="title" tt:if="{{enable}}">已开启返回询问对话框,点击左上角返回按钮,弹框确认返回。</view> <view class="title" tt:else>已关闭返回询问对话框,返回时不会弹窗确认</view> <view class="btn-area"> <button disabled="{{enable}}" type="primary" bindtap="enableAlert">开启返回询问对话框</button> <button disabled="{{!enable}}" type="primary" bindtap="disableAlert">关闭返回询问对话框</button> </view> <text> Tip:返回询问对话框只会对调用的当前页面生效; Tip:通过手势滑动返回时不会弹起询问对话框。 </text> </view>
Page({ data: { length: 0, enable: false, }, async onLoad(options) { this.enableAlert(); const pages = await this.getPages(); this.setData({ length: pages.length }) }, getPages() { return new Promise((resolve, reject) => { resolve(getCurrentPages()); }) }, enableAlert() { if (tt.canIUse("enableAlertBeforeUnload")) { tt.enableAlertBeforeUnload({ message: "是否确认返回", success: (res) => { console.log("开启页面返回询问对话框成功", res); this.setData({ enable: true, }); }, fail: (err) => { tt.showToast({ title: "开启返回询问对话框失败" }); console.log("开启页面返回询问对话框失败", err); }, complete(res) { console.log("开启页面返回询问对话框结束", res); } }); } else { tt.showModal({ title: "提示", content: "当前客户端版本过低,无法使用该功能,请升级客户端或关闭后重启更新。", }); } }, disableAlert() { if (tt.canIUse("disableAlertBeforeUnload")) { tt.disableAlertBeforeUnload({ success: (res) => { console.log("关闭页面返回询问对话框成功", res); this.setData({ enable: false, }); }, fail: (err) => { console.log("关闭页面返回询问对话框失败", err); }, complete(res) { console.log("关闭页面返回询问对话框结束", res); } }); } else { tt.showModal({ title: "提示", content: "当前客户端版本过低,无法使用该功能,请升级客户端或关闭后重启更新。", }); } }, })