热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

运用h5新特征,轻松监听任何App自带返回键

1、媒介如今h5新特征、新标签、新范例等有许多,而且正在不断完善中,各大阅读器商对它们的支撑,也是相称给力。作为前端程序员,我以为我们照样有必要积极关注并勇敢地加以实践。接下来我将

1、媒介

如今h5新特征、新标签、新范例等有许多,而且正在不断完善中,各大阅读器商对它们的支撑,也是相称给力。作为前端程序员,我以为我们照样有必要积极关注并勇敢地加以实践。接下来我将和列位分享一个迥殊好用的h5新特征(如今也不是迥殊新),轻松监听任何App自带的返回键,包含安卓机里的物理返回键,从而完成项目开辟中进一步的需求。

2、原由

也许半年前接到pm一需求,用纯h5完成多audio的播放、停息、续播,页面放至驾考宝典App中,与客户端没有任何的交互,所以与客户端相干的js不需要援用。看上去这需求挺简朴的嘛,虽然之前也没做过相似的需求。不管三七二十一,撸起袖子就是干。最先了进修之旅。

3、我这里偏重引见下我详细是怎样监听任何App自带的返回键,以及安卓机里的物理返回键。

那为何我要去监听呢,这里我有必要强调强调再强调。苹果手机不管是微信、QQ、App,照样阅读器里,涉及到audio、video,返回上一页体系会自动停息当前的播放的,但不是一切安卓机都能够。所以我们本身必需自定义监听。许多朋侪能够第一主意就是百度,然后出来的答案无非是如许

pushHistory();
window.addEventListener("popstate", function(e) {
alert("我监听到了阅读器的返回按钮事宜啦");//依据本身的需求完成本身的功用
}, false);
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}

是不是是很眼熟?但是症结需求不能圆满完成,要这段代码有何用,当时我也是挖空心思。直到经由大神挚友指点,复制了这段代码

var hiddenProperty = 'hidden' in document ? 'hidden' :
'webkitHidden' in document ? 'webkitHidden' :
'mozHidden' in document ? 'mozHidden' :
null;
var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
var OnVisibilityChange= function(){
if (document[hiddenProperty]) {
console.log('页面非激活');
}else{
console.log('页面激活')
}
}
document.addEventListener(visibilityChangeEvent, onVisibilityChange);

一切题目水到渠成。
这段代码的道理我个人明白就是经由过程推断用户阅读的是不是为当前页,从而举行相干操纵。
这是 MDN相干链接:https://developer.mozilla.org…。

4、手机兼容性

尽人皆知如今的安卓机体系4.0等都是低配版了,该属性大部分安卓机都能辨认,个人低配版安卓机没法辨认,缘由在于navigator.userAgent内核版本太低,chrome如今许多是64+了,所以碰到该题目只需想办法兼容它就好了。

并不是说真的能够经由过程JS监听到用户对App里的自带返回键的直接操纵,以至安卓的物理返回键,而是经由过程改变思绪,疾速完成需求。愿望这个特征能帮到列位。


推荐阅读
  • vue使用
    关键词: ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 文章目录题目:二叉搜索树中的两个节点被错误地交换。基本思想1:中序遍历题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下 ... [详细]
author-avatar
蜜蜜鱼鱼_270
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有