php教程 PHP开发 QR 코드를 스캔하여 앱의 구현 코드를 엽니다.

QR 코드를 스캔하여 앱의 구현 코드를 엽니다.

Dec 07, 2016 am 10:49 AM
app

최근 친구가 저에게 이런 질문을 했습니다. 먼저 프로젝트 요구사항을 알려드리겠습니다. QR 코드를 스캔하여 앱을 열면 앱이 실행되지 않습니다.

웹 페이지를 사용하여 앱을 직접 호출하는 것은 불가능합니다. 먼저 네이티브 측에서 일부 구성을 수행해야 합니다.

먼저 안드로이드와 애플은 통화방식이 다릅니다.

그래서 단말기를 먼저 판단해야 합니다.

var u = navigator.userAgent,
app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
로그인 후 복사

그 후에는 Apple이 헤더에 app-id< Meta name='apple-itunes-app' content='app-id=1115968341'>

다음은 Apple의 코드입니다

&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;meta name=&#39;apple-itunes-app&#39; content=&#39;app-id=1115968341&#39;&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;a href=&quot;https://itunes.apple.com/cn/app/yi-fang-kuai-le-xue-tang/id1115968341?mt=8&quot; id=&quot;openApp&quot;&gt;点击打开&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
//苹果
document.getElementById(&#39;openApp&#39;).onclick = function(e){
// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
// 否则打开a标签的href链接
var ifr = document.createElement(&#39;iframe&#39;);
ifr.src = &#39;iosefunbox://&#39;;
ifr.style.display = &#39;none&#39;;
document.body.appendChild(ifr);
window.setTimeout(function(){
document.body.removeChild(ifr);
},3000)
};
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
로그인 후 복사

여기의 ifr.src는 앱을 열 수 있는 프로토콜 경로입니다. Android와 Apple은 다릅니다. <br><br><br>안드로이드 기기라면 간단할 것입니다

&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;title&gt;&lt;/title&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;a href=&quot;http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile&quot; id=&quot;openApp&quot;&gt;点击打开&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
//安卓
// /**/window.location.href = &quot;http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile&quot;;
// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
// 否则打开a标签的href链接
var ifr = document.createElement(&#39;iframe&#39;);
ifr.src = &#39;efunbox://efunbox.app/efunbox/open&#39;;
ifr.style.display = &#39;none&#39;;
document.body.appendChild(ifr);
window.setTimeout(function(){
document.body.removeChild(ifr);
},3000);
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
로그인 후 복사

네, 애플이 앱스토어로 바로 점프할 수 있다고 하더군요. 직접 열어야 합니다. Android의 경우 직접 열어야 합니다.

이렇게 하면 하나의 웹페이지에 정리할 수 있습니다.

위의 링크는 Tencent App Store로 바로 이동합니다.

웹페이지를 스캔해서 접속하면 문제 없습니다.

그런데 무슨 일이 일어날 것 같은 느낌이 들어서 위챗으로 스캔했는데 속았습니다. Android는 링크만 열며 WeChat이 이를 가로채기 때문에 앱으로 이동할 수 없습니다. Apple의 경우에도 마찬가지입니다. 유일한 해결책은 사용자에게 브라우저에서 링크를 열라는 메시지를 표시하는 것입니다. 문제없어요. 이 방법은 무력한 조치였지만 나중에 Apple 컴퓨터에 대한 해결책이 발견되었습니다. 링크 A의 점프는 Tencent App Store에 나열된 링크로 직접 점프한 다음 WeChat이 이를 내부적으로 처리하고 자동으로 앱 스토어로 점프합니다.

마지막은 통합코드입니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body id="body">
<script type="text/javascript">
var u = navigator.userAgent,
app = navigator.appVersion;
var isAndroid = u.indexOf(&#39;Android&#39;) &gt; -1 || u.indexOf(&#39;Linux&#39;) &gt; -1; //android终端或者uc浏览器
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if(isIOS){
window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";
}
if(isAndroid){
alert("请点击右上角在浏览器打开");
window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";
var ifr = document.createElement('iframe');
ifr.src = 'efunbox://efunbox.app/efunbox/open';
ifr.style.display = 'none';
document.body.appendChild(ifr);
window.setTimeout(function(){
document.body.removeChild(ifr);
},3000);
}
</script>
</body>
</html>
로그인 후 복사

보충:

QR 코드를 스캔하여 앱으로 이동

1. 설치됨

&lt;html&gt;
&lt;head&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h2&gt;&lt;a id=&quot;applink1&quot; href=&quot;mtcmtc://profile/116201417&quot;&gt;Open scheme(mtcmtc) defined in iPhone with parameters &lt;/a&gt;&lt;/h2&gt;
&lt;h2&gt;&lt;a id=&quot;applink2&quot; href=&quot;unknown://nowhere&quot;&gt;open unknown with fallback to appstore&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Only works on iPhone!&lt;/i&gt;&lt;/p&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
// To avoid the &quot;protocol not supported&quot; alert, fail must open another app.
var appstore = &quot;itms://itunes.apple.com/us/app/facebook/id284882215?mt=8&amp;uo=6&quot;;
function applink(fail){
return function(){
var clickedAt = +new Date;
// During tests on 3g/3gs this timeout fires immediately if less than 500ms.
setTimeout(function(){
// To avoid failing on return to MobileSafari, ensure freshness!
if (+new Date - clickedAt &lt; 2000){
window.location = fail;
}
}, 500);
};
}
document.getElementById(&quot;applink1&quot;).onclick = applink(appstore);
document.getElementById(&quot;applink2&quot;).onclick = applink(appstore);
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
로그인 후 복사

2. 프로젝트 대상에서 schemurl을 열고 //

을 추가합니다.

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

cocos2d-LUA 리버스 엔지니어링에서 앱 리소스를 해독하는 방법 cocos2d-LUA 리버스 엔지니어링에서 앱 리소스를 해독하는 방법 May 16, 2023 pm 07:11 PM

cocos2d-LUA 리버스 엔지니어링에서 앱 리소스를 해독하는 방법

Jingdong Mall APP에서 실명인증하는 방법 Jingdong Mall APP에서 실명인증하는 방법 Mar 19, 2024 pm 02:31 PM

Jingdong Mall APP에서 실명인증하는 방법

Microsoft는 Windows 11의 Smart App Control을 개선했지만 사용하지 못할 수도 있습니다. Microsoft는 Windows 11의 Smart App Control을 개선했지만 사용하지 못할 수도 있습니다. Apr 17, 2023 pm 04:40 PM

Microsoft는 Windows 11의 Smart App Control을 개선했지만 사용하지 못할 수도 있습니다.

홍콩 Apple ID 등록 절차 및 주의사항(홍콩 Apple Store만의 장점을 누리세요) 홍콩 Apple ID 등록 절차 및 주의사항(홍콩 Apple Store만의 장점을 누리세요) Sep 02, 2024 pm 03:47 PM

홍콩 Apple ID 등록 절차 및 주의사항(홍콩 Apple Store만의 장점을 누리세요)

iPhone에서 App Store 구매 내역을 확인하고 삭제하는 방법 iPhone에서 App Store 구매 내역을 확인하고 삭제하는 방법 Apr 13, 2023 pm 06:31 PM

iPhone에서 App Store 구매 내역을 확인하고 삭제하는 방법

China Unicom 앱에서 데이터 패키지를 취소하는 방법 China Unicom에서 데이터 패키지를 취소하는 방법 China Unicom 앱에서 데이터 패키지를 취소하는 방법 China Unicom에서 데이터 패키지를 취소하는 방법 Mar 18, 2024 pm 10:10 PM

China Unicom 앱에서 데이터 패키지를 취소하는 방법 China Unicom에서 데이터 패키지를 취소하는 방법

멀티포인트 앱으로 송장 발행 방법 멀티포인트 앱으로 송장 발행 방법 Mar 14, 2024 am 10:00 AM

멀티포인트 앱으로 송장 발행 방법

개인소득세 앱 신고방법 개인소득세 앱 신고방법 개인소득세 앱 신고방법 개인소득세 앱 신고방법 Mar 12, 2024 pm 07:40 PM

개인소득세 앱 신고방법 개인소득세 앱 신고방법

See all articles