찾다
웹 프론트엔드H5 튜토리얼APP 기본 페이지를 시작하는 H5 인스턴스 메소드

APP 기본 페이지를 시작하는 H5 인스턴스 메소드

Jun 25, 2017 am 10:02 AM
html5토종의시작하다요약

오랫동안 블로그를 작성하지 않았습니다. 최근 H5에 APP의 기본 페이지를 출시하라는 요구가 있었습니다. 그 과정에서 몇 가지 함정에 부딪혔습니다. 일부 온라인 구현 계획을 읽은 후 특별히 요약했습니다.

1. 클라이언트 플랫폼과 WeChat에서 탐색 중인지 확인해야 합니다. 브라우저에서 액세스

1. 클라이언트 판단

Android와 IOS 시스템에서는 다르게 처리합니다. 브라우저에서 태그와 메타 태그를 전달할 수 있습니다. 이 방법을 사용하면 브라우저 앱이 애플리케이션을 열고 앱을 실행할 수 있는 권한을 얻을 수 있습니다.

IOS 측면에서 IOS9 이후 시스템은 앱 개발 프로세스 중에 구성 및 논리 코드 작성을 추가할 수 있습니다. 시스템은 브라우저가 도메인 이름에 액세스하려고 하기 전에 도메인 이름에 해당하는 앱을 엽니다. , 폐쇄해도 여전히 이점이 있습니다.

먼저 클라이언트에서 Android 시스템인지 IOS 시스템인지 판단해야 합니다. 판단 코드는 다음과 같습니다

function isInIos(){var userAgentInfo = navigator.userAgent ,
        Agents = ["iPhone" , "iPad", "iPod"];for(var v = 0; v  0) {          return true;
        }
    }return false;
}
2. WeChat 내장 브라우저에 있는지

어느 쪽인지는 중요하지 않습니다. 클라이언트 Android/IOS가 켜져 있는 플랫폼, WeChat에서 플랫폼에 액세스할 때 문제가 있습니다. 즉, 이는 보안상의 이유로 WeChat의 제한 사항입니다. WeChat의 파트너이며 화이트리스트에 가입되어 있으면 IOS 시스템을 사용할 수 있습니다. 앱에 해당하는 앱 스토어의 다운로드 페이지를 방문할 수 있지만 WeChat은 종종 앱 스토어 URL을 차단하여 액세스할 수 없게 만듭니다. 더 편리한 방법은 IOS든 Android든 WeChat 브라우저에서 App Store의 다운로드 페이지를 여는 것입니다(IOS는 결국

appstore로 이동합니다). 여기서 요구 사항은 사용자에게 "..."를 클릭하여 기본 브라우저로 열도록 요청하는 것입니다.

WeChat에 있는지 확인하기 위한 코드는 다음과 같습니다.

function isInWx(){var agent = window.navigator.userAgent.toLowerCase();return agent.match(/MicroMessenger/i) == 'micromessenger';
}

2. 원리

우선 안드로이드인지 IOS인지 확인이 불가능합니다. 브라우저에 JS를 통해 특정 소프트웨어가 장착되어 있으면 이 브라우저에 모바일 애플리케이션 목록을 읽을 수 있는 권한이 있어도 쿼리할 수 있는 고정된 외부 API가 없습니다. H5 시작 앱은 기본적으로

URL 체계를 통해 앱을 엽니다. 앱은 자체적으로 열도록 하나 이상의 URL 체계를 설정할 수 있으며, 시스템에 이 앱이 설치된 경우 이 앱을 열려면 권한을 요청합니다. 실제로 브라우저 앱이라고 볼 수 있습니다

다른 앱을 열려면 iOS는 UIApplication의 canOpenUrl 메서드를 사용하여 URL 구성표가 해당 앱을 열 수 있는지 여부를 감지할 수 있으며 Android도 비슷합니다. 물론, JS 점프 URL 방식이 응답하지 않는다면 휴대폰에 이 앱이 설치되어 있지 않다는 의미이기도 합니다.

3. Android 플랫폼

주로 두 번째

<activity>  <intent-filter>  <action></action>      <category></category>  </intent-filter>  <intent-filter>  <action></action>      <category></category>      <category></category>      <data></data>  </intent-filter></activity>

를 추가하기 위해 AndroidManifest.xml을 먼저 편집합니다. 예를 들어 여기 wushang은 구성표이며 이는 앱의 고유 식별자에 가장 적합합니다. 그렇지 않으면 H5가 깨어나면 시작할 앱을 선택하는 선택 상자가 나타납니다. 그리고 호스트는 페이지를 시작한다는 의미입니다. 실제로는 com.android.sky와 같은 패키지 이름으로 바꿔야 합니다.

이 경우 전체 URL은 wushang://android?data=sky이고 매개변수 전송이 이어집니다. 활동에서 다음 코드를 사용하여 매개변수
public void onCreate(Bundle savedInstanceState) {             
     Uri uridata = this.getIntent().getData();             
     String mydata = uridata.getQueryParameter("data");            
}

를 가져올 수 있습니다. 그런 다음 문자열 가로채기 등을 수행할 수 있습니다.

다음으로 프론트 엔드 코드에 대해 이야기하겠습니다. 여기에는 두 가지 상황이 있습니다.

1. 페이지가 새로 고쳐지면 앱 호출 권한을 요청하세요.

이것은 비교적 간단합니다. 하지만 페이지 상단에

<meta>

가 표시되어 있고 페이지가 새로고침되면 이 링크에 액세스하여 앱을 시작할 수 있습니다. 하지만 Apple 시스템의 Safari 브라우저인 경우 이 메타로 헤더에 액세스하면 오류 메시지가 표시됩니다. 따라서 페이지를 렌더링할 때 클라이언트의

일반 클래스를 통해 이 헤더를 추가할 수 있습니다. 백엔드.
2. 클릭 이벤트를 통해 APP를 호출하는 가장 쉬운 방법은 물론 다음과 같이 a 태그를 직접 사용하는 것입니다

<a>open Android app</a>

그러나 실제 사용에서는 클라이언트의 플랫폼 유형과 해당 여부를 알아야 합니다. WeChat 내장 브라우저에서 판단이 필요하므로 이러한 접근 방식은 절대 허용되지 않습니다.

다음으로, 개발 과정에서 겪은 문제에 대해 이야기하고 기록해보겠습니다. 여기 모바일 단말에서 사용하는 툴 라이브러리는 zepto이고, 사용되는 클릭 이벤트는 탭이기 때문에, 처리를 위해 탭을 사용할 때, APP를 활성화하기 위해 여러 번 클릭해야 하는 경우가 종종 있습니다

<script>
  $(&#39;#go&#39;).tap(function(){
      window.location.href = "wushang://android";
  });</script>
모르겠습니다. 구체적인 이유는 있지만 탭 이벤트일 수도 있습니다. 그런 다음 몇 가지 탐색 후에 이 문제를 피하기 위해 click 이벤트를 사용하거나 a 태그에 핸들러 기능을 직접 표시했습니다

<a>open Android app</a>
   open<script></script><script></script><script>$(&#39;#go&#39;).click(function () {       if(publicFun.isIos()){
          alert(&#39;it is IOS&#39;)
       }else{
          window.location.href = "wushang://android";
       }
    });function startApp(){       if(publicFun.isIos()){
          alert(&#39;it is IOS&#39;)
       }else{
          window.location.href = "wushang://android";
       }
    }</script>

그래서 앞으로 이런 종류의 문제가 발생하면 이 두 가지 방법을 사용하기로 결정했습니다. 아래는 실제 처리 기능입니다
 window.startApp = function(){     //启动APP if(publicFun.isInWx()){     //微信中alert("请在浏览器中打开");
     }else{      //非微信中if(publicFun.isIos()){    //IOS系统,直接去itunes中,既可以下载也可以打开window.location.href = "https://itunes.apple.com/cn/app/[name]/id[id]";
        }else{      //android系统,通过定时器的方式,判断是否安装有APPvar hasApp = true , t = 1000;
            setTimeout(function () {  //没有安装APP则跳转至应用宝下载,延时时间设置为2秒  if(!hasApp) window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=[name]";
            } , 2000);var t1 = Date.now();
            window.location.href = "wushang://android";
            setTimeout(function () {    //t的时间就是出发APP启动的时间,若APP启动了,再次返回页面时t2这行代码执行,hasApp即为true。反之若APP没有启动即为false  var t2 = Date.now();
              hasApp = !(!t1 || t2 - t1 <p></p><p>사실 앱으로 ​​바로 이동하는 아주 간단한 방법이 있습니다. Android든 IOS든, WeChat이든 WeChat이 아니든 마찬가지입니다. App Store의 다운로드 페이지에는 다운로드와 열기의 두 가지 기능이 있습니다(IOS 플랫폼인 경우 앱 스토어에 연결하는 것입니다) </p><p> </p><p> 4. IOS 플랫폼 </p><p>ios9과 위의 링크는 열 수 없습니다. 실제로 iOS 9는 더 나은 솔루션인 범용 링크를 제공합니다. </p><p>이 기능은 iOS9에서 출시된 기능입니다. 앱이 유니버설 링크를 지원하는 경우 기존 HTTP 링크를 통해 쉽게 앱을 시작할 수 있습니다. (앱이 이미 iOS 기기에 설치되어 있는 경우 추가 판단 등을 할 필요가 없습니다.) , 또는 웹 페이지를 엽니다(앱이 iOS 장치에 설치되지 않음). 아마도 더 간단하게 설명할 수 있을 것입니다. iOS9 이전에는 Safari, UIWebView 또는 WKWebView와 같은 다양한 브라우저에서 앱을 깨워야 하기 때문에 일반적으로 스키마만 사용할 수 있었습니다. </p><p>위 내용은 인터넷의 범용 링크에 대한 소개에서 나온 것입니다. 프런트 엔드의 경우 간단히 말하면 http URL에 액세스합니다. 이 URL에 개발 플랫폼에 제출한 구성 파일의 규칙과 일치하는 콘텐츠가 포함되어 있으면 iOS 시스템이 앱을 열려고 시도합니다. 앱을 열 수 없으면 시스템이 브라우저에서 액세스하려는 링크로 리디렉션됩니다. 이는 매우 좋은 속성입니다. 이 속성을 통해 WeChat의 가로채기를 우회하고 iOS9에서 앱을 열 수 있기 때문입니다. </p><p>그래서 위의 클릭 이벤트는 단지 앱 스토어에 액세스하기 위한 것입니다. 앱이 설치되어 있으면 브라우저에서 액세스할 때 이미 앱에 있을 것이기 때문입니다. </p><p>이것들은 모두 IOS 구성이므로 더 이상 쓰지 않겠습니다. 매개변수 전달 및 페이지 방향은 실제로 UIWebView에서 현재 연결된 URL을 얻은 다음 문자열 분할 및 검증을 수행하여 이동할 페이지를 결정하고 매개변수 값을 얻는 것과 같습니다. </p><p></p>

위 내용은 APP 기본 페이지를 시작하는 H5 인스턴스 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

H5는 멀티미디어 지원, 오프라인 스토리지 및 성능 최적화로 웹 사용자 경험을 향상시킵니다. 1) 멀티미디어 지원 : H5 및 요소는 개발을 단순화하고 사용자 경험을 향상시킵니다. 2) 오프라인 스토리지 : WebStorage 및 IndexedDB는 오프라인으로 사용하여 경험을 향상시킵니다. 3) 성능 최적화 : 웹 워즈 및 요소는 성능을 최적화하여 대역폭 소비를 줄입니다.

H5 코드 해체 : 태그, 요소 및 속성H5 코드 해체 : 태그, 요소 및 속성Apr 18, 2025 am 12:06 AM

HTML5 코드는 태그, 요소 및 속성으로 구성됩니다. 1. 태그는 컨텐츠 유형을 정의하고 다음과 같은 각도 브래킷으로 둘러싸여 있습니다. 2. 요소는 컨텐츠와 같은 시작 태그, 내용 및 엔드 태그로 구성됩니다. 3. 속성 시작 태그에서 키 값 쌍을 정의하고 기능을 향상시킵니다. 웹 구조를 구축하기위한 기본 단위입니다.

H5 코드 이해 : HTML5의 기본 사항H5 코드 이해 : HTML5의 기본 사항Apr 17, 2025 am 12:08 AM

HTML5는 현대적인 웹 페이지를 구축하는 핵심 기술로 많은 새로운 요소와 기능을 제공합니다. 1. HTML5는 웹 페이지 구조 및 SEO를 향상시키는 의미 론적 요소를 소개합니다. 2. 멀티미디어 요소를 지원하고 플러그인없이 미디어를 포함시킵니다. 3. 양식은 새로운 입력 유형 및 검증 속성을 향상시켜 검증 프로세스를 단순화합니다. 4. 웹 페이지 성능 및 사용자 경험을 향상시키기 위해 오프라인 및 로컬 스토리지 기능을 제공합니다.

H5 코드 : 웹 개발자를위한 모범 사례H5 코드 : 웹 개발자를위한 모범 사례Apr 16, 2025 am 12:14 AM

H5 코드에 대한 모범 사례는 다음과 같습니다. 1. 올바른 문서 선언 및 문자 인코딩 사용; 2. 시맨틱 태그를 사용하십시오. 3. HTTP 요청을 줄입니다. 4. 비동기 부하 사용; 5. 이미지 최적화. 이러한 관행은 웹 페이지의 효율성, 유지 관리 및 사용자 경험을 향상시킬 수 있습니다.

H5 : 웹 표준 및 기술의 발전H5 : 웹 표준 및 기술의 발전Apr 15, 2025 am 12:12 AM

웹 표준과 기술은 현재까지 HTML4, CSS2 및 간단한 JavaScript에서 발전했으며 중대한 개발을 거쳤습니다. 1) HTML5는 캔버스 및 웹 스토리지와 같은 API를 도입하여 웹 응용 프로그램의 복잡성과 상호 작용을 향상시킵니다. 2) CSS3은 애니메이션 및 전환 기능을 추가하여 페이지를보다 효과적으로 만듭니다. 3) JavaScript는 화살표 기능 및 클래스와 같은 Node.js 및 ES6의 최신 구문을 통해 개발 효율 및 코드 가독성을 향상시킵니다. 이러한 변경으로 인해 웹 애플리케이션의 성능 최적화 및 모범 사례의 개발이 촉진되었습니다.

H5는 HTML5의 속기입니까? 세부 사항을 탐색합니다H5는 HTML5의 속기입니까? 세부 사항을 탐색합니다Apr 14, 2025 am 12:05 AM

H5는 HTML5의 약어 일뿐 만 아니라 더 넓은 현대 웹 개발 기술 생태계를 나타냅니다. 1. H5는 HTML5, CSS3, JavaScript 및 관련 API 및 기술을 포함합니다. 2. 그것은 더 풍부하고 대화식이며 부드러운 사용자 경험을 제공하며 여러 장치에서 원활하게 실행할 수 있습니다. 3. H5 기술 스택을 사용하여 반응 형 웹 페이지와 복잡한 대화식 기능을 만들 수 있습니다.

H5 및 HTML5 : 웹 개발에 일반적으로 사용되는 용어H5 및 HTML5 : 웹 개발에 일반적으로 사용되는 용어Apr 13, 2025 am 12:01 AM

H5 및 HTML5는 동일한 것을, 즉 html5를 나타냅니다. HTML5는 HTML의 다섯 번째 버전으로 시맨틱 태그, 멀티미디어 지원, 캔버스 및 그래픽, 오프라인 스토리지 및 로컬 스토리지와 같은 새로운 기능을 제공하여 웹 페이지의 표현성 및 상호 작용성을 향상시킵니다.

H5는 무엇을 언급합니까? 맥락 탐색H5는 무엇을 언급합니까? 맥락 탐색Apr 12, 2025 am 12:03 AM

h5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelements 및 dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enovannangeserexperienceacrossdevices.3) SemanticLementsImproveContentsTructUreAndSeo.4) H5'Srespo

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경