• h5复制粘贴板,打开APP功能


    <div class="container">
        <img src="../themes/mall/img/i_red_ad4.jpg">
        <div class="bnt-box">
            <a class="openApp" href="javascript:void(0);">打开</a>
        </div>
        <div id="cope-box">
            <input type="text" id="copyInput" value=""><!-- 用于安卓复制 -->
            <p id="coptText"></p><!-- 用于ios复制 -->
        </div>
    </div>
    
    
    //复制内容
            function copyUrl2(str)
            {
                console.log(str)
                if (isiOS) {
                    coptText.innerHTML = str;
                    var copyDOM = document.querySelector('#coptText');  //要复制文字的节点  
                    var range = document.createRange();    
                    // 选中需要复制的节点  
                    range.selectNode(copyDOM);  
                    // 执行选中元素  
                    window.getSelection().addRange(range);  
                    // 执行 copy 操作  
                    var successful = document.execCommand('copy');    
                    try {    
                        var msg = successful ? 'successful' : 'unsuccessful'; 
                        
                        console.log('copy is' + msg);    
                    } catch(err) {
                        mytip.show({content:'复制失败'});  
                    }  
                    // 移除选中的元素  
                    window.getSelection().removeAllRanges();  
                }else{
                    var oInput = document.getElementById('copyInput')
                    oInput.value = str;
                    oInput.select(); // 选择对象
                    document.execCommand("Copy"); // 执行浏览器复制命令
                    oInput.blur();//input标签会调起native的输入框需要处理
                }
            }
    //微信平台判断
    var u = navigator.userAgent;
            function isInWx(){
                var agent = window.navigator.userAgent.toLowerCase();
                return agent.match(/MicroMessenger/i) == 'micromessenger';
            }
            function startApp(){//启动APP
                if(isInWx()){//微信中
                    mytip.show({content:'请在浏览器中打开'});
                }else{//非微信中
                    if(isiOS){//IOS系统,直接去itunes中,既可以下载也可以打开
                        var ver = (navigator.appVersion).match(/OS (d+)_(d+)_?(d+)?/);
                        if (ver<9) {
                            hasAppTurn("https://itunes.apple.com/。。。。应用市场链接","schema链接")
                        }else{
                            hasAppTurn("https://itunes.apple.com/。。。。应用市场链接","https://ios通用链接") 
                }
              }
    else{

                 //android系统,通过定时器的方式,判断是否安装有APP
                 hasAppTurn("安卓下载地址","tps://host_xxxx/xxx") } }
              }
          }
        }

    //是否有APP跳转
            function hasAppTurn(noapp,hasapp){
                var hasApp = true , t = 2000;
                //setTimeout(function () {//没有安装APP则跳转至应用宝下载,延时时间设置为2秒
                //    if(!hasApp) window.location.href = noapp;
                //} , 3000);
                var t1 = Date.now();
                window.location.href = hasapp;
                setTimeout(function () {//t的时间就是出发APP启动的时间,若APP启动了,再次返回页面时t2这行代码执行,hasApp即为true。反之若APP没有启动即为false
                    var t2 = Date.now();
                    hasApp = !(!t1 || t2 - t1 < t + 150);
              if(!hasApp) window.location.href = noapp;
            } , t); 
          }

           $(
    '.openApp').click(function(){ startApp() })

    //内容复制

    var mytip = new MyDialog({
    type:1,
    content:''
    })
    var str = '测试下复制';
    //点击复制啊
    $(window).click(function(){
    copyUrl2(str)
    })

     

    注意:

    cope-box内的元素不显示在页面但是不能是hide否则复制不成功
    ios的通用链接不能是同域名的否则跳转不成功(经测试不同子域名也可以)


  • 相关阅读:
    Treap仿set 模板
    线段树(区间更改,区间查最值)模板
    UVA 12345 Dynamic len(带修莫队)
    服务器配置环境以及部署项目流程
    使用SSH的scp命令行传输文件到远程服务器
    服务器部署javaweb项目
    在ubuntu服务器上安装mysql并配置外网访问
    在ubuntu服务器上配置tomcat
    在ubuntu服务器上配置jdk
    linux命令--解压与压缩
  • 原文地址:https://www.cnblogs.com/lichuntian/p/9391069.html
Copyright © 2020-2023  润新知