惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
C
Check Point Blog
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
M
MIT News - Artificial intelligence
B
Blog RSS Feed
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
美团技术团队
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale

西枫里博客

如何养好一只兔子 - 西枫里 浙北安吉北部乡镇春节民俗 - 西枫里 湘西张家界之旅(游记篇) - 西枫里 热闹的电影暑期档 - 西枫里 湘西张家界之旅(攻略篇) - 西枫里 阳记 - 西枫里 一地鸡毛,高歌欢进(三) - 西枫里 华为Nova7SE换屏维修记录 - 西枫里 魔都魔幻生活——我的抗疫经历 - 西枫里 树莓派升级手记 - 西枫里 尝试挽救一下我的SEO——页面常规优化 - 西枫里 2022年在上海外地牌照车辆异地年检流程 - 西枫里 尝试挽救一下我的SEO——域名和主机的影响 - 西枫里 尝试挽救一下我的SEO——缘起 - 西枫里 米6钉子户,更换电池再战2年。 - 西枫里 二换科鲁兹前照灯灯泡 - 西枫里 一地鸡毛,高歌欢进(二) - 西枫里 联想拯救者14ISK更换电池 - 西枫里 冷车打火喘抖怎么办?倒车灯倒车雷达影像没反应怎么办? - 西枫里 树莓派刷64位系统放内网做服务器使用 - 西枫里 米6刷MIUI12的简易教程(进击的小米6) - 西枫里 一地鸡毛,高歌欢进(一) - 西枫里 人近不惑三十六,本命牛年转乾坤。 - 西枫里 魔都新冠疫苗接种记 - 西枫里 thinkpad扬声器没声音 - 西枫里 个人健康管理,刻不容缓 - 西枫里 Hello Java - 西枫里 到了退休年龄社保未缴满十五年怎么办? - 西枫里 科鲁兹/英朗后备箱开关更换 - 西枫里 iphone6换屏教程,附iphone已停用解锁 - 西枫里
钉钉微应用控制页面返回 - 西枫里
西枫里 · 2019-07-15 · via 西枫里博客

所谓某些场景,算了,不描述了,总之总有那么几种需求让你的业务只能前进不能后退,这个页面完成进入下一个页面,想退回来,没门。微应用就是个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属性就包含了上述对象的副本。