html5勾起app的方式

日期:2021-01-19 类型:科技新闻 

关键词:快速建站,网站建设系统,免费网页建站,网站免费建设,建站系统

h5勾起app这类要求是普遍的。在挪动为王的时期,h5在app导流上充分发挥侧重要的功效。

现阶段大家选用的勾起方法是url scheme(iOS,Android服务平台都适用),只需原生态APP开发设计时申请注册scheme, 那末客户点一下到此类连接时,会全自动跳到APP。

3种勾起计划方案

iframe

var last = Date.now(),
    doc = window.document,
    ifr = doc.createElement('iframe');

//建立1个掩藏的iframe
ifr.src = nativeUrl;
ifr.style.cssText = 'display:none;border:0;width:0;height:0;';
doc.body.appendChild(ifr);

setTimeout(function() {
    doc.body.removeChild(ifr);
    //setTimeout回小于20001般为勾起不成功 
    if (Date.now() - last < 2000) {
        if (typeof onFail == 'function') {
            onFail();
        } else {
            //弹窗提醒或免费下载解决等
        }
    } else {
        if (typeof onSuccess == 'function') {
            onSuccess();
        }
    }
}, 1000);

iframe计划方案的勾起基本原理是: 程序流程切换到后台管理时,计时器会被延迟(计时器禁止的又1种状况)。假如app被唤起那末网页页面必定就进到了后台管理,假如客户从app切回家,那末時间1般会超出2s;若app沒有被勾起,那末网页页面不容易进到后台管理,setTimeout基础按时开启,那末時间不容易超出2s。

window.location.href立即自动跳转

window.location.href = nativeUrl;

a标识勾起

<a href="nativeUrl">勾起app</a>

3种勾起计划方案的访问器检测

  1. X表明勾起不成功,√表明勾起取得成功
  2. 鲜红色标识表明进到网页页面立即勾起,翠绿色表明人力恶性事件实际操作后勾起
  3. ios检测机:iphone 6p;android检测机:小米1s

iframe勾起app检测結果

window.location.href勾起app检测結果

a标识勾起app检测結果

iframe和window.location.href勾起比照

iframe、window.location.href和a标识勾起3者比照

检测結果剖析

最先检测的机型和访问器比较有限,上述結果仅作参照.

比照iframe勾起和location.href,大家能够发现:

  1. 针对ios来讲,location.href自动跳转更适合,由于这类方法能够在Safari中取得成功勾起app。Safari做为iphone默认设置访问器其关键性就无需多说了,而针对手机微信和qq顾客端,ios中这两种方法都沒有甚么卵用==
  2. 针对Android来讲,在进到网页页面立即勾起的状况下,iframe和location.href是1样的,可是假如是恶性事件驱动器的勾起,iframe勾起的主要表现比location.href要更好1点。
  3. 根据检测能够发现,进到网页页面立即勾起和恶性事件驱动器的勾起,针对许多访问器,二者的主要表现是不一样的,简易来讲,立即勾起的不成功更多。

根据上述比照剖析,Android应用iframe勾起,ios选用window.location.href勾起更适合1点。

进到网页页面立即勾起和恶性事件驱动器勾起的差别

这两种勾起情景在Android中有显著的差别,不管是iframe的方法勾起還是location.href,以小米1s的chrome为例:

<a id="goApp" href="javascript:void(0);">点我开启APP</a>

关联恶性事件 人力驱动器勾起:

//取得成功勾起
window.onload = function () {
    $('#goApp').on("click", function () {
        window.lib.callapp("nativeUrl");//iframe
        //window.location.href = nativeUrl;
    });
};

进到网页页面立即勾起:

//勾起不成功
window.onload = function () {
    window.lib.callapp("nativeUrl");//iframe
    //window.location.href = nativeUrl;
};

关联恶性事件,js勾起

//勾起不成功
window.onload = function () {
    $('#goApp').on("click", function () {
        window.lib.callapp("nativeUrl");//iframe
        //window.location.href = nativeUrl;
    });

    $('#goApp).trigger('click');
};

本来我认为$('#goApp).trigger('click');的方法和人力点一下是1样的,而具体主要表现是,js开启恶性事件的主要表现和网页页面立即自动跳转1样失效。

从参照的博文中看到 Android服务平台和各个app厂商差别很大,例如Chrome从25及之后就已不适用根据js开启(非客户点一下),设定iframe src详细地址等来开启scheme自动跳转。因此js开启和立即客户点一下差别還是很大的,跟声频播发的限定如出一辙吧。

最终

历经上述的检测和剖析,基础敲定ios用window.location.href的方法勾起较为适合,Android用iframe勾起较为适合。大家在应用iframe勾起时,1般对勾起不成功的解决是立即免费下载,可是这里就有1个难题,便是访问器没法检验到勾起是不是取得成功,即,假如我勾起取得成功后回到访问器,访问器還是会弹出免费下载信息内容,这个人验很差。自然大家也必须解决1些取得成功或不成功的回调函数涵数,说不确定大家的情景只必须勾起而其实不必须不成功后的免费下载呢。

有关应用location.href勾起iphone手机上上的原生态app,自动跳转正中间页的解决方法将会也比当今页立即解决更好1点。

以上便是本文的所有內容,期待对大伙儿的学习培训有一定的协助,也期待大伙儿多多适用脚本制作之家。