今回はH5ページでAPP関数を呼び出す方法を紹介します。H5ページでAPP関数を呼び出す際の注意事項を実際のケースで見てみましょう。
この種の機能は市場でよく見られ、淘宝H5、Zhihu H5など、今では非常に一般的になるはずです。 。 。
クリックすると、APPが呼び出されるか、ダウンロードページが開くか、直接ダウンロードされます。
しかし、Zhihu のこの機能は少し異なることがわかりました。そのロジックは、まず電話で Zhihu APP を開くかどうかを尋ね、その後、ダウンロードをポップアップ表示します。プロンプト。
ソリューションURLスキーム
URLスキームはIOSとAndroidの両方でサポートされており、優れた互換性があります。
iframeを使用する方法が推奨されます
疑似コードは次のとおりです:
const iframe = document.createElement('iframe'); iframe.src = 'URL scheme'; // URL scheme的方式跳转 iframe.style.display = 'none'; document.body.appendChild(iframe);
この時点で、すべての環境がサポートしている場合、APPは起動されます。
しかし、これは理想的な状況であり、互換性処理の高速ロジックを実行することがより重要です。
一部のシステムは、iframe の src をインターセプトします (これは、APP の起動に失敗する理由の 1 つにすぎません)。これは、この src
属性が無法者のハッカーであり、それを悪用することによって多くの脆弱性が引き起こされるためです。 そのため、この時点でアプリの調整が失敗したかどうかを判断する必要があります。
疑似コードは次のとおりです:
const timer = 1000; setTimeout(function() { // 执行成功后移除iframe document.body.removeChild(iframe); //setTimeout小于2000通常认为是唤起APP失败 if (Date.now() - last < 2000) { // 执行失败函数 // 这里需要考虑一下之前知乎遇到的那个问题(浏览器询问导致时间小于2S) } else { // 执行成功函数 } }, timer);
理解:
呼び出しが成功すると、H5 ページがバックグラウンドに切り替わり、タイマーが遅延します。ユーザーがアプリから H5 ページに切り替えた場合でも、時間差は 2 秒以上である必要があります。
覚醒が失敗した場合、
タイマーは時間通りに実行されます(100msの遅延があっても十分です)。この時点では2秒未満でなければなりません。 iframe がインターセプトされる場合、互換性のために window.location.href = URL スキームを使用できます。
これらの事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
関連書籍:
HTML 5の新機能の使用方法HTMLでテーブルのマウスドラッグソートを実装する方法HTMLがページにジャンプするときにパラメータを渡す方法以上がH5ページでAPP関数を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。