>웹 프론트엔드 >H5 튜토리얼 >h5 앱을 깨우는 방법

h5 앱을 깨우는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-01-11 09:27:424149검색

이번에는 h5를 사용하여 앱을 깨우는 방법, h5를 사용하여 앱을 깨우는 방법을 보여드리겠습니다. h5 깨우기 앱의 주의사항은 무엇인가요? 실제 사례를 살펴보겠습니다.

h5 Arouse App 이러한 요구는 일반적입니다. 모바일이 왕인 시대에 h5는 앱 트래픽 전환에 중요한 역할을 합니다.

세 가지 호출 체계

현재 우리가 사용하는 호출 방법은 url 체계입니다(iOS 및 Android 플랫폼 모두에서 지원됨). 그런 다음 사용자가 해당 체계를 클릭하면 해당 체계를 등록할 수 있습니다. 링크를 클릭하면 자동으로 APP으로 이동됩니다.

var last = Date.now(),
    doc = window.document,
    ifr = doc.createElement('iframe');
 
//创建一个隐藏的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回小于2000一般为唤起失败
    if (Date.now() - last < 2000) {
        if (typeof onFail == &#39;function&#39;) {
            onFail();
        } else {
            //弹窗提示或下载处理等
        }
    } else {
        if (typeof onSuccess == &#39;function&#39;) {
            onSuccess();
        }
    }
}, 1000);

iframe 솔루션의 호출 원리는 프로그램이 백그라운드로 전환되면 타이머가 지연된다는 것입니다(타이머가 부정확한 또 다른 상황). 앱이 깨어나면 웹페이지는 필연적으로 백그라운드로 들어갑니다. 사용자가 앱에서 다시 전환하면 일반적으로 시간이 2초를 초과합니다. 앱이 깨어나지 않으면 웹페이지는 기본적으로 백그라운드로 들어가지 않습니다. 시간은 2초를 초과하지 않습니다.

window.location.href가 직접 점프합니다

window.location.href = nativeUrl;


a label evokes

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


iframe evoke와 location.href를 비교하면 다음을 찾을 수 있습니다.

ios의 경우 location.href가 더 적합합니다. Safari에서 앱을 성공적으로 실행할 수 있는 방법입니다. iPhone의 기본 브라우저로서 Safari의 중요성은 말할 필요도 없지만 WeChat 및 QQ 클라이언트의 경우 이 두 가지 방법은 ios==

Android의 경우 아래 페이지, iframe 및 위치에 들어갈 때 직접 호출됩니다. href는 동일하지만 이벤트 중심인 경우 iframe 호출의 성능이 location.href의 성능보다 좋습니다.

테스트를 통해 많은 브라우저에서 페이지에 들어갈 때 직접 호출과 이벤트 기반 호출의 성능이 다르다는 것을 알 수 있습니다. 간단히 말해서 직접 호출이 더 많이 실패합니다.

위의 비교 분석을 통해 Android의 경우 iframe, iOS의 경우 window.location.href를 사용하는 것이 더 적합합니다.

이 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

관련 읽기:

H5의 웹 로컬 저장소를 사용하는 방법

H5에서 드래그 앤 드롭 기능을 구현하는 방법

H5의 고급 인라인 태그

위 내용은 h5 앱을 깨우는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.