ホームページ >php教程 >PHP开发 >QRコードをスキャンしてアプリの実装コードを開きます

QRコードをスキャンしてアプリの実装コードを開きます

高洛峰
高洛峰オリジナル
2016-12-07 10:49:172813ブラウズ

最近、友人が私にこの質問をしました。最初にプロジェクトの要件を説明します。ユーザーがアプリを持っていない場合は、QR コードをスキャンしてアプリを開きます。

Web ページを使用してアプリを直接呼び出すことはできません。最初にネイティブ側でいくつかの設定を行う必要があります。

まず、AndroidとAppleでは通話方法が異なります。

そのため、最初に端末を判断する必要があります。

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 はヘッダー -id= で app-id61b0c52b414e994b70baef4f52ed7176

以下は Apple のコードです

​​
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name=&#39;apple-itunes-app&#39; content=&#39;app-id=1115968341&#39;>
<title></title>
</head>
<body>
<a href="https://itunes.apple.com/cn/app/yi-fang-kuai-le-xue-tang/id1115968341?mt=8" id="openApp">点击打开</a>
<script type="text/javascript">
//苹果
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)
};
</script>
</body>
</html>

ここでの ifr.src は、アプリを開くためのプロトコル パスです。Android と Apple では異なります。
Android を使用している場合は、直接開く必要はありません。

こうすることで、1 つの Web ページにそれらを集めることができます。

上記のリンクは Tencent App Store に直接ジャンプします。

Webページをスキャンしてアクセスすれば問題ありません

でも、何かが起こりそうな予感がして、WeChatでスキャンしたら騙されました。 Android はリンクを開くだけで、WeChat によってインターセプトされるためアプリにジャンプできません。Apple の場合も同様です。唯一の解決策は、右上隅をクリックしてブラウザで開くように促すことです。問題ありません。この方法は無力な手段でしたが、後に Apple マシン向けの解決策が見つかり、リンク A のジャンプは Tencent App Store にリストされているリンクに直接ジャンプし、その後 WeChat が内部で処理して自動的に App Store にジャンプします。

最後は統合コードです。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
</head>
<body>
<a href="http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile" id="openApp">点击打开</a>
<script type="text/javascript">
//安卓
// /**/window.location.href = "http://a.app.qq.com/o/simple.jsp?pkgname=com.edufound.mobile";
// 通过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);
</script>
</body>
</html>

追加:

QRコードをスキャンしてアプリに移動します

1. アプリがインストールされているかどうかを確認します










2. プロジェクトターゲットでschemurlを開き、:/を追加します。 /

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。