移动端H5检测设备是否安装了某个APP

试了一下网上的主要的几种方法,发现都不起作用,比如通过iFrame来判断的,在真机尝试过,并没有效果。

后面在某位兄弟博客上看到一种方法,通过判断浏览器窗口是否失去焦点来判断有没有安装APP,如果有安装的话,会调起APP,窗口会失去焦点。如果没有安装APP的话,焦点还在该窗口上,然后设定一个时间,超时即打开下载页。

代码如下:


function checkOutApp() {

       var isBlur = false;

        // 通过URL scheme来调起APP

        location.href = 'APP的URL scheme';

        setTimeout(function() {

            if (!isBlur) {

                location.href = 'APP的下载链接';

            }

        }, 1000);

        // window 每次失去焦點

        window.onblur = function() {

            console.log('失去焦點');

            isBlur = true;

        };

        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('失去焦點');

                isBlur = true;

            }

        }

        document.addEventListener(visibilityChangeEvent, onVisibilityChange);

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容