>  기사  >  웹 프론트엔드  >  JS가 앱 구현 코드를 가져오거나 다운로드합니다.

JS가 앱 구현 코드를 가져오거나 다운로드합니다.

高洛峰
高洛峰원래의
2017-02-23 17:23:451629검색

제품에서 요구사항을 제시하고 있습니다. 회사의 앱이 설치되어 있는지 확인하세요. 앱이 설치되어 있지 않으면 다운로드 페이지로 이동합니다.

정보를 확인하기 위해 여러 번 시도한 끝에 꽤 수용 가능한 방법을 생각해 냈습니다.

앱 실행 원칙은 js와 기본 주소를 하나의 주소로 통합하는 것입니다(예: qiyimobile://self/qiyi.madeindexpage). 그런 다음 브라우저는 요청을 시작합니다. 앱이 설치되어 있으면 요청을 가로채서 엽니다.

다음은 안드로이드 코드 구성입니다. 사실, 스킴과 호스트를 js 측과 통일해야 합니다

<span style="font-size:18px;"><intent-filter> 
        <action android:name="android.intent.action.VIEW" /> 
        <category android:name="android.intent.category.DEFAULT" /> 
        <category android:name="android.intent.category.BROWSABLE" /> 
        <data  
      android:scheme="qiyimobile"  
      android:host="self/qiyi.madeindexpage"  
      android:pathPrefix="/**"> 
     </data> 
</intent-filter></span>

js 측이 좀 더 번거롭습니다. 그냥 앱을 실행하는 것이 더 쉽다면, 또는 window.location.href="**"를 통해 직접 연결하세요. 하지만 여기에는 문제가 있습니다. 즉, 일부 휴대폰에서는 앱이 설치되지 않은 경우 이전에 설정한 프로토콜을 인식하여 웹페이지를 열려고 시도합니다. 물론 웹페이지를 찾을 수 없다는 메시지가 표시됩니다. 여기에 사용된 iframe 방법은 호환성이 약간 더 좋습니다.

rreee

폰에 앱이 설치되어 있지 않은 경우에는 지연 후 바로 다운로드 페이지로 이동해야 한다고 말하는 사람들이 많습니다. 팔로우

 var ifr = document.createElement(&#39;iframe&#39;);
 ifr.src = &#39;qiyimobile://self/qiyi.madeindexpage&#39;;
 document.body.appendChild(ifr);

물론 일부 휴대폰에서는 앱 실행 시 타이머가 자동으로 지워지지 않기 때문에 문제가 됩니다. 앱이 설치되어 있는지 여부에 관계없이 페이지는 500ms 후에 다운로드로 이동합니다. 따라서 다운로드 페이지로 이동해야 하는지 판단하는 것이 가장 번거로운 일입니다. 마지막으로 다음을 시도하는 것이 더 나은 해결책입니다.

초기 시간을 설정하고 앱 주소를 불러오면 종료 시간이 발생합니다. 그 차이가 일정 시간보다 크면 앱이 설치된 것입니다. . 차이가 작으면 앱이 열리지 않은 것이므로 다운로드 페이지로 이동해야 합니다.

최종 코드는 다음과 같습니다

window.location.href=“打开地址”
 setTimeout(function() {  
  window.location.href=“下载地址”
      }, 500);

위는 에디터에서 소개한 앱을 불러오거나 다운로드하기 위한 JS 구현 코드입니다. 모든 분들께 도움이 되기를 바랍니다. 궁금한 점이 있으시면 메시지를 남겨주시면 편집자가 제 시간에 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

JS 구현 코드에 대한 더 많은 글을 보시거나 앱을 다운로드 받으시려면 PHP 중국어 홈페이지를 주목해주세요!


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