AI智能
改变未来

钉钉微应用 Android返回键自定义功能 兼容

钉钉微应用 Android返回键自定义功能 兼容

问题

最新的钉钉文档

导航栏左侧显示的是标题,若想在Android设备上拦截返回按钮的行为,请参考事件回调。

那么dd.biz.navigation.setLeft函数只能用于IOS端,碰到产品提出编辑页面做出改变返回需要提醒窗的这种需求,是不是懵逼了?

对事件的监听

var clickFunction = (e) => {e.preventDefault();// do something here};document.addEventListener(\"backbutton\", clickFunction, false);

移除监听

document.removeEventListener(\"backbutton\", clickFunction, false);

单页应用

不幸的是,上面的代码只能在非单页应用起作用。因为返回按钮是绑定在document上的时间,然而SPA document是不变的。对于这个蛋疼的问题,也只能曲线救国一下了

解决思路

分两步
  1. 每次路由跳转,重写监听事件
  2. 执行过一次立即移除监听

改造下上面的代码

var clickFunction = (e) => {e.preventDefault();if (document.location.pathname === YOURROUTER) {// do something}document.removeEventListener(\"backbutton\", clickFunction, false);};document.addEventListener(\"backbutton\", clickFunction, false);

移除监听是因为以免多次进入路由页面,生成多个监听,一下子返回好几个页面?

还有一个小坑

因为重写了全部页面back,所以打开的首页没有页面可以返回,也不可以关闭。这是可以重新首页back,或者应用有可能有其他页面分享出去,可以根据history来判断是不是进入的第一个页面。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 钉钉微应用 Android返回键自定义功能 兼容