iOS9.0 Safari で利用できる applink ハック


Universal link 導入に伴い、独自スキームを使う applink は利用する折に確認ダイアログが出るようになりました。

iOS9.0 の Safari では、このダイアログを半ば無視してアプリを切り替えることが可能です。

注意!
しかしながら iOS9.1 以降では以下のハックは利用できません。また iOS9.2 では、適用しない方がよい状況になっている様子です。素直に Universal link を導入しましょう。

location.href などで applink にリダイレクトした後、別のアドレスに setTimeout を使って再リダイレクトします。

  location.href = 'app-scheme://app-scheme';
  setTimeout(function() {
      location.href = "https://your.fallback.address/";
  },1)

この時、Safari では、後者で指定したアドレスが開かれると同時に applink が選択された状態と同じになり、該当アプリが開きます。

見つけた当初から Safari のバグっぽいと思っていましたが、iOS9.1 でしっかり直されていました。

ですので、もう一度言いますが、iOS9.0 でのみ利用できるハックで iOS9.1 以降では、副作用の方が影響が大きいので、利用しないことを強くオススメ します。