H5跳转app代码
2024-08-31 06:36:15
不罗嗦直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<title>Document</title>
<script src="./jquery-3.2.1/jquery-3.2.1.min.js"></script>
</head>
<body>
<div class="box">
<img id="btn" src="./images/750-1280.jpg"></img>
</div>
<style>
html,body,.box{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
img{
width: 100%;
height: 100%;
}
</style>
<script>
function detectVersion() {
let isAndroid,isIOS,isIOS9,version,
u = navigator.userAgent,
ua = u.toLowerCase();
if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { //android终端或者uc浏览器
//Android系统
isAndroid = true
}
if(ua.indexOf("like mac os x") > 0){
//ios
var regStr_saf = /os [\d._]*/gi ;
var verinfo = ua.match(regStr_saf) ;
version = (verinfo+"").replace(/[^0-9|_.]/ig,"").replace(/_/ig,".");
}
var version_str = version+"";
if(version_str != "undefined" && version_str.length >0){
version = parseInt(version)
if(version>=8){
// ios9以上
isIOS9 = true
}else{
isIOS = true
}
}
return {isAndroid,isIOS,isIOS9}
} // 判断手机上是否安装了app,如果安装直接打开url,如果没安装,执行callback
function openApp(url,callback) {
stopDefault()
let {isAndroid,isIOS,isIOS9} = detectVersion()
if(isAndroid || isIOS){
var timeout, t = 4000, hasApp = true;
var openScript = setTimeout(function () {
if (!hasApp) {
callback && callback()
}
document.body.removeChild(ifr);
}, 5000) var t1 = Date.now();
var ifr = document.createElement("iframe");
ifr.setAttribute('src', url);
ifr.setAttribute('style', 'display:none');
document.body.appendChild(ifr);
timeout = setTimeout(function () {
var t2 = Date.now();
if (t2 - t1 < t + 100) {
hasApp = false;
}
}, t);
}
if(isIOS9){
// window.location.href = url;
setTimeout(function() {
callback && callback()
}, 1000);
setTimeout(function() {
location.reload();
}, 2000);
}
} //跳转h5网站
function goConfirmAddr(){
window.location.href = 'https://m.tb.cn/h.3Fe5mRA?sm=6f43f6'
stopDefault()
}
function stopDefault(e) {
if (e && e.preventDefault) {
e.preventDefault();//防止浏览器默认行为(W3C)
} else {
window.event.returnValue = false;//IE中阻止浏览器行为
}
return false;
}
//配置对应图片大小
function getWidthAndHeight(){
console.log(window.innerHeight + "," +window.innerWidth+','+window.screen.height);
var num = window.innerWidth/window.innerHeight;
let {isAndroid,isIOS,isIOS9} = detectVersion()
if(isAndroid) {
$('#btn').attr("src","./images/1080-1601.jpg");
}else{
switch(window.screen.height){
case 736:
$('#btn').attr("src","./images/720-1062.jpg");
break;
case 667:
$('#btn').attr("src","./images/1080-1844.jpg");
break;
case 568:
$('#btn').attr("src","./images/750-1280.jpg");
break;
case 812:
$('#btn').attr("src","./images/1080-1844.jpg");
break;
default:
$('#btn').attr("src","./images/1242-1786.jpg");
}
}
}
window.onload = function(){
getWidthAndHeight()
//3秒内点击多次只执行一次
var checkClick = false;
$('#btn').click(function() {
if(checkClick === true) {
return false
}
openApp("taobao://m.tb.cn/h.3Fe5mRA?sm=6f43f6",goConfirmAddr)
checkClick = true;
setTimeout(function(){
checkClick = false
},3000)
});
}
</script>
</body>
</html>
最新文章
- 使用JS实现前端缓存
- postgreSQL的设置自增主键初始值
- Redis配制说明
- bash: 避免命令重复执行的简单脚本
- BZOJ1657: [Usaco2006 Mar]Mooo 奶牛的歌声
- 201521123083《Java程序设计》第11周学习总结
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
- 汇编语言1(mooc)
- [转]web服务器压力测试工具
- POJ 1556 The Doors(线段相交+最短路)
- java-使用Jacob实现office转换成pdf
- bzoj5108: [CodePlus2017]可做题
- String类中";==";、equals和普通类中";==";、equals的比较
- [转] 使用gc &;&; objgraph 优化python内存
- [转] Meida视频加密二-Blob对象
- yii2 用 bootstrap 给元素添加背景色
- python 全栈开发,Day45(html介绍和head标签,body标签中相关标签)
- <;转载>;AWS 基础知识
- 【BZOJ1970】[AHOI2005]矿藏编码(模拟)
- [转] Android 性能分析案例
热门文章
- python--基础1(pip,虚拟环境、python编写规范)
- Go语言学习-main和init
- OSPF特殊区域和LSA
- C++typename的由来和用法
- P1908 逆序对——树状数组&;离散化&;快读快写の学习
- Java多线程操作同一份资源
- B&#233;zout恒等式
- hdu3506 Monkey Party
- Codeforces Round #481 (Div. 3) G. Petya&#39;s Exams (贪心,模拟)
- C# 之 async / await