Html5ページオープンアプリに関するいくつかの考察
1.要件
少し前のことですが、あるプロジェクトを開発していたところ、ある要件に出くわしました。簡単に言うと、私たちのH5ページには「アプリで開く」ボタンがあり、ユーザーがそれをクリックすると、ユーザーがアプリをインストールしている場合は直接アプリが開かれ、ユーザーがアプリをインストールしていない場合は、アプリのダウンロードページにジャンプするのです
まず、私の知識では、H5はアプリがインストールされているかどうかを検出することはできないはずです(もし検出方法を知っている人がいれば、コメント欄で教えてください、ありがとうございます!)。そのため、アプリがインストールされているかどうかを判断するプロセスを完了させるためには、いくつかのトリックが必要です。
例としてAndroid携帯を導入する手順の後、システムの現在のios9のバージョンは、アプリがインストールされているかどうかを判断するためにこれらのプロセスを行うために私たちはH5する必要はありません(ios9は、ユニバーサルリンク(ユニバーサルリンク)を提供することによって行うことができる後、Apple App Storeを開くためにアプリプロンプトをインストールしないように、インストールしたアプリが直接開いてジャンプしている)。
2.スキームプロトコルについて
スキームプロトコルはページ内ジャンププロトコルの一種で、アプリ内のジャンプしたい各ページにジャンプするようにスキームプロトコルをカスタマイズできます。スキームプロトコルはジャンプするURLの形式になっているので、このURLからアプリ内の指定したページにジャンプすることもでき、これがH5のアプリを開く原理になっています。
schemeのurl形式は、以下のようなものです。
[scheme]://[host]/[path]? [query]
3. H5をアプリで開くための2つの実装方法
3.1 タイマーだけで判断する
この方法のアイデアは、まずネイティブアプリの生徒で定義されたスキームのurlとしてジャンプしたいアドレスを設定し、その後、タイマーを設定し、タイマーで実行されるロジックは、ユーザーの携帯電話にアプリがインストールされていない場合、しばらくしてからダウンロードアプリページにジャンプするようにすることである。
コアとなるコードは以下の通りです。(ジャンプを完了するためにiframeを使用することができますが、iosなどのデバイスでiframeが許可されているかどうかを検討する必要があります)
const schemeUrl = 'xxx'
const downloadUrl = 'XXX'
const wait = 500
try {
location = schemeUrl
setTimeout(() => {
location = downloadUrl
}, wait)
} catch (e) {
console.error(e)
}
問題点
上記の実装の問題点は、アプリへのジャンプが成功しても、元のH5ページが時間経過でダウンロードページにジャンプしてしまうため、体感的には
3.2 ウィンドウのhiddenプロパティを利用した判定
この方法のアイデアは、アプリが正常に起動し、H5ページがバックグラウンドに配置されると、window.hiddenプロパティがtrueに変化するので、このプロパティ変化でアプリが開いているかどうかを判断し、開いていなければダウンロードページにジャンプするというもので、もちろん、ここでタイマーも使用しています。
コアとなるコードは以下の通りです。
function checkOutApp() {
const schemeUrl = 'xxx'
const downloadUrl = 'XXX'
const wait = 1000
// Whether to enter the background or not
const hidden = false
location = schemeUrl
// If the page is not hidden within a certain time, it will jump to the download page
setTimeout(() => {
if (!hidden) {
location = downloadUrl
}
}, wait)
// Page visibility change event
document.addEventListener("visibilitychange", function(){
if (document.hidden) {
hidden = true
}
});
}
問題点
現在、一部のAndroidブラウザでは、アプリが存在する場合、最初にアプリを開くかどうかを尋ねる確認ボックスをポップアップ表示し、ユーザーが同意した場合のみ、アプリにジャンプします。ユーザーが確認をクリックしない場合、それはまだ良い経験ではない、ダウンロードページにジャンプすることになります。
4.いくつかの考え
上記の問題点を踏まえて、インタラクションの中に「ダウンロードページへ移動する」というインタラクションを追加し、ユーザーがアプリをインストールしない場合、一定時間後に、まずユーザーに「アプリがインストールされていないか、ダウンロードをクリックしてください」と同様のプロンプトを出し、ボタンをクリックしてダウンロードページにジャンプするようにすればいいと思います。 /ユーザーがアプリをインストールしていない場合、一定時間が経過すると、最初に「クリックでダウンロード」のようなボタンが表示され、ユーザーがクリックするとダウンロードページにジャンプします。
Html5ページオープンアプリについては、この記事がすべてです、より関連するHtml5オープンアプリの内容は、スクリプトハウスの過去の記事を検索するか、次の関連記事を閲覧を続けてください、あなたは将来的にもっとスクリプトハウスをサポートして願っています!。
関連
-
サンプルレートとビットレートを設定してmp3オーディオを録音するhtml5
-
キャンバスを使った雪の結晶の効果を実現するコード例
-
キャンバスの内容を消去する(点消去+線消去)
-
HTML5でtitleタグに小さなアイコンを設定する方法
-
recorder.js Html5ベースの録画機能実装
-
html5 android compatibility for mobile video (remove play control, full screen)(モバイルビデオ用アンドロイド互換性)。
-
キャンバス画像分割効果の実装
-
キャンバスで簡単なポスターを描くお手本
-
モバイルhtml5で長押しイベントをシミュレートする方法
-
HTML5 モバイルポップアップアニメーション効果
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NodeによるHTML5オフラインストレージ
-
画像アップロードとキャンバス圧縮処理の解析
-
h5ページ evokeアプリがインストールされていない場合、ダウンロードにジャンプします(iOS、Android)。
-
4種類のプログラムの画面適応に応じたモバイルh5ページを説明する。
-
html5でhotcss.jsを使い、携帯電話の自己適合を実現する方法
-
高さ調整可能なテキストエリアを作成するサンプルコード
-
iPhoneXのためのHtml5ページ適応(簡単なことです)
-
Canvasユーティリティライブラリ Fabric.jsマニュアル
-
モバイル開発 HTML5 ボタンをクリックすると、ページがちらついたり、背景が黒くなったりする問題
-
HTMLでIMGをDIVコンテナのサイズに自動的に適応させる方法