|  RSS订阅  |  加入收藏

钉钉微应用控制页面返回

在钉钉微应用中某些场景需要控制页面返回,本文主要讲述安卓端利用HTML5的新特性history.pushState()来实现控制页面返回。
摘要

所谓某些场景,算了,不描述了,总之总有那么几种需求让你的业务只能前进不能后退,这个页面完成进入下一个页面,想退回来,没门。微应用就是个HTML5的页面,被载入到了钉钉内置浏览器而已。所以控制页面返回无需后端判断,前端页面直接控制就可以。知道怎么做就容易了,去翻钉钉文档的前端API,本想着迎刃而解,不料,IOS是迎刃而解,安卓却了成程咬金杀将了出来。



钉钉文档前端API部分

直接看图吧,钉钉的文档中很明显的表示安卓端如果要阻止后退的话,需要调用事件回调函数。IOS可以直接阻止。这特么就尴尬了,前端可以做的事情非要后端插一脚。

未标题-1.jpg


集成安卓端的阻止控制

博主前端能力是战斗力只有5的渣渣,尝试了下日常所用的阻止发现在我的米6上不生效,部分其它安卓机可以,这就不得度娘一番,最终找到了这串代码,顺道和ios的集成到一起算了,看代码。

未标题-2.jpg


学习下安卓端的这段代码

1、history.pushState()这个方法是html5的新特性,一并出现的还有一个history.replaceState()方法。使用 history.pushState()后,会改变 XMLHttpRequest 请求时 HTTP header头中 referrer 的值。referrer 记录了当前页面文件(this)的 URL。

2、document.URL是通过js获取当前的页面地址。

3、addEventListener()方法是向指定的事件添加一个句柄。

4、popstate事件,当历史记录被更改的时候将会触发pushState事件。如果历史记录是由history.pushState()创建的或者对history.replaceState()的调用产生影响,popstate事件的state属性就包含了上述对象的副本。



如文章有用,点下广告吧
  钉钉开发    
转载请注明出处,未经许可禁止商用!
发表评论
*依据《网络安全法》规定,您需实名认证后才能评论!
@橘子书:就比如。。。。算了,不描述了~
耍流氓,说好的某些场景,你居然不描述了。
@银色月航:一直都搞啊,主要的工作是项目管理,顺道做些开发
老兄你现在也搞开发了?