1

ユーザーが特定の URL にアクセスしたときに、ネイティブ アプリを起動しようとしています。

アプリはカスタム URL スキーマに登録されているので、その部分は完了です。
問題は、フォールバックを実装することです。

私が欲しいのは次のようなものです:

try {
  # Redirect to the app
} catch(e) {
  # Redirect to the web version
}

window.location例外が発生しないため、明らかに機能しません。

私はこれをやってみました:

window.location = 'some-schema://some/url';
setTimeout(function() { window.location = '/some/url'; }, 100);

ユーザーが URL にアクセスすると、アプリが開きます。ただし、ユーザーがブラウザーに戻ると、フォールバック コードが実行され、ユーザーには Web バージョンが表示されます。

これは唯一の欠点です。次回ユーザーが URL にアクセスすると、何らかの理由でアプリが開きません (Android でのみテスト済み)。301 リダイレクトを使用していないため、リダイレクトをキャッシュする理由がわかりません。

私はほとんどあきらめており、「アプリがある場合はここをクリックし、それ以外の場合はここをクリックする」というビューを実装する可能性が高いです。

あなたが尋ねる前に、純粋にJSで書かれており、window.locationajaxリクエストと画像の読み込みを中断するため、Webバージョンからアプリを開くことができません。

4

0 に答える 0