• 前端处理在web打开app功能,有app就打开,没app就提示需要下载直接跳到下载app的页面


    由于有的浏览器是禁止在js里面直接用location跳到app地址的,所以统一用一个弹框提示用户要不要跳到app,确定按钮是一个a标签,地址是app那边设置的可以通过链接打开app的地址;

    需要打开app的地方调用自己封装的打开弹框的方法 ,这里就是弹出一个确认框可以用自己的;通过页面可见性的改变事件来处理是否安装了app;

    用到的知识点  visibilitychange :https://developer.mozilla.org/zh-CN/docs/Web/API/Document/visibilitychange_event

     toShowConfirmLay(“要打开app吗?”);
     
    //跳app的取消框
    var hiddenPro = 'hidden' in document ? 'hidden' : 
    'webkitHidden' in document ? 'webkitHidden' :
    'mozHidden' in document ? 'mozHidden' :
    null;
    var appTime = null
    //兼容不同的浏览器
    var changeEvent = hiddenPro.replace(/hidden/i,'visibilitychange')
    //窗口是否可见事件变化的回调函数
    function isGoApp(){
        if(!document[hiddenPro]){
            //留在了当前页面
        }else{
            //跳到了app把提示要下载app的定时器去掉不需要提示了,把窗口监听去掉
            clearTimeout(appTime)
            document.removeEventListener(changeEvent,isGoApp)
        }
    };
    //跳app的确认框 
    $(document).on("click", ".sure", function () {
        toHideConfirmLay(); //隐藏弹框
        document.addEventListener(changeEvent,isGoApp) //点击确认后就开始监听这个窗口可见改变的事件
        appTime = setTimeout(function(){//设置一个定时器提示要下载app,如果有app的话在上面的回调函数把这个定时器清除不触发
            document.removeEventListener(changeEvent,isGoApp)lopdealsToast("text","请先安装app",3000,function(){
                //需要下载的app的下载地址
                location.href="https://play.google.com/store/apps/details?''''"
            })
        },2000)
    });
    $(document).on("click", ".cancel", function () { //是否跳到app的取消按钮的点击事件,把弹框去掉
        toHideConfirmLay();
    });
  • 相关阅读:
    放大镜/鼠标移入放大
    窗口拖动
    call、apply、bind三者的区别
    window下jdk配置
    Linux jdk+tomcat+mysql 安装及配置
    linux下yum包更新不了
    如何让form2中的数据源,显示在form1的dataGridView控件中呢????
    自己写的SqlHelper,提示在调用"Fill"前,SelectCommand 属性尚未初始化.错误
    datatable和dataset的区别
    c# 数据库基础(将连接字符串写到配置文件中)
  • 原文地址:https://www.cnblogs.com/chun321/p/12895804.html
Copyright © 2020-2023  润新知